消息队列ActiveMQ初步

安装ActiveMQ

官网地址:http://activemq.apache.org/

解压后基本目录结构:

  • bin存放的是脚本文件
  • conf存放的是基本配置文件
  • data存放的是日志文件
  • docs存放的是说明文档
  • examples存放的是简单的实例
  • lib存放的是activemq所需jar包
  • webapps用于存放项目的目录

进入 bin 目录:

./activemq star # 启动activeMQ服务
./activemq stop # 关闭activeMQ服务

ActiveMQ 默认启动时,启动了内置的 jetty 服务器,提供一个用于监控 ActiveMQ 的 admin 应用(默认端口为8161,默认账号密码都是admin):

PHP通过STOMP协议连接ActiveMQ

STOMP 是一个简单的可互操作的协议,被用于通过中间服务器在客户端之间进行异步消息传递。它定义了一种在客户端与服务端进行消息传递的文本格式。

STOMP 1.2规范:https://stomp.github.io/stomp-specification-1.2.html

PHP扩展——STOMP安装

下载地址:http://pecl.php.net/package/stomp

$ wget http://pecl.php.net/get/stomp-2.0.2.tgz
$ tar zxf stomp-2.0.2.tgz
$ cd stomp-2.0.2
$ phpize 
$ ./configure --enable-stomp --with-php-config=/usr/local/php/bin/php-config
$ make && make install

完成后可以在结果中看见 extension 安装路径,在 php.ini 中添加节点:

[stomp]
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/stomp.so

验证安装结果:

php -m | grep Stomp

手动创建一个测试队列

进入管理后台,创建一个新的 Queue:test

扫描二维码关注公众号,回复: 4305798 查看本文章

并在该 test 队列中发送几条消息

PHP连接并获取消息

<?php
//61613是STOMP连接默认的端口,在ActiveMQ目录conf/activemq.xml文件可修改
$broker = 'tcp://ActiveMQ服务IP地址:61613';
$queue  = '/queue/test';

try {
    $stomp = new Stomp($broker);
    $stomp->subscribe($queue);

    while($stomp->hasFrame()) {
    //订阅一个消息队列
        $frame = $stomp->readFrame();
    //输出消息体内容
        echo $frame->body.PHP_EOL;
    }
} catch(StompException $e) {
    echo $e->getMessage();
}

运行上面的代码:

猜你喜欢

转载自www.cnblogs.com/tangxuliang/p/10045719.html
今日推荐