消息队列ActiveMQ初步
Posted tangxuliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消息队列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
并在该 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(); }
运行上面的代码:
以上是关于消息队列ActiveMQ初步的主要内容,如果未能解决你的问题,请参考以下文章