由于公司打算将php-resque的消息队列切换到activemq来,了解一下centos+php+activemq+stomp搭建消息队列的。

一、安装JDK

    下载JDK(官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

    1.1 选择:jdk-8u131-linux-x64.tar.gz 下载到 /data/service

    1.2 解压:tar -zxvf jdk-8u131-linux-x64.tar.gz

    1.3 移到:mkdir -p /usr/local/java     cp -R jdk1.8.0_131/ /usr/local/java/

      1.4 添加JAVA环境变量  vi /etc/profile

JAVA_HOME=/usr/local/java/jdk1..0_131
JRE_HOME=/usr/local/java/jdk1..0_131/jre
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

    1.5 重新加载 profile

      source /etc/profile

二、安装activemq

  2.1:下载activemq

  cd /data/service
  wget http://mirrors.hust.edu.cn/apache//activemq/5.14.5/apache-activemq-5.14.5-bin.tar.gz

   2.2:解压

  tar -zxvf apache-activemq-5.14.5-bin.tar.gz

  2.3 配置stomp

  vim /data/software/apache-activemq-5.14./conf/activemq.xml 

  在<transportConnectors>中添加如下:
  <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

  2.4 启动 activemq

  /data/software/apache-activemq-5.14./bin/activemq start

  2.5:监控activemq

http://activemqserverip:8161/admin/   (默认的账号:admin 默认密码:admin)

  2.6:修改监控账号

vi /data/software/apache-activemq-5.14./conf/jetty-realm.properties

注意的是 用户名和密码的格式是

用户名 : 密码 ,角色名

三、PHP使用activemq测试消息队列(发送数据:sender,获取数据:receiver)

  3.1 sender(生产端)

class MqController extends Controller
{
public static $activemqConf = array(
'url' => 'tcp://activemqServerIp:61613',
'id' => 'admin',
'pswd' => 'admin',
'queue' => 'sms',
'enable' => TRUE
); public function connectActiveMq()
{
$link = stomp_connect(self::$activemqConf['url'], self::$activemqConf['id'], self::$activemqConf['pswd']);
if (!$link) {
die("Can't connect MQ !!");
} else {
return $link;
}
} public function actionSender()
{
$link = $this->connectActiveMq();
$item = '{ "mobile":"13900000000", "content":"您好!您的验证码为112233", "callback":"demo.xiaohuideng.com/sms/callback" }'; //使用 persistent message
$result = stomp_send($link, self::$activemqConf['queue'], $item, array("persistent" => "true"));
if (FALSE === $result) {
echo '推入队列失败';
} else {
echo 'job_id:' . $result;
}
}
}

  

  3.2 receiver(接收端)

class MqController extends Controller
{
public static $activemqConf = array(
'url' => 'tcp://activemqServerIp:61613',
'id' => 'admin',
'pswd' => 'admin',
'queue' => 'sms',
'enable' => TRUE
); public function connectActiveMq()
{
$link = stomp_connect(self::$activemqConf['url'], self::$activemqConf['id'], self::$activemqConf['pswd']);
if (!$link) {
die("Can't connect MQ !!");
} else {
return $link;
}
} public function actionReceiver()
{
$this->connectActiveMq();
$stomp = new Stomp(self::$activemqConf['url'], self::$activemqConf['id'], self::$activemqConf['pswd']);
$stomp->subscribe('*');
while ($stomp->hasFrame()) {
$frame = $stomp->readFrame();
if ($frame != NULL) {
// 收到的数据为 $frame->body
$res = json_decode($frame->body, true);
$res = json_encode($res, JSON_UNESCAPED_UNICODE);
echo '<pre>';
print_r($res);
echo '</pre>';
$stomp->ack($frame);
}
}
}
}

centos下的activemq的配置及PHP的使用的更多相关文章

  1. linux和CentOS下网卡启动、配置等ifcfg-eth0教程(转自)

    转自:http://www.itokit.com/2012/0415/73593.html it 动力总结系统安装好后,通过以下二个步骤就可以让你的系统正常上网(大多正常情况下).步骤1.配置/etc ...

  2. CentOS下网卡启动、配置等ifcfg-eth0教程(转)

    步骤1.配置/etc/sysconfig/network-scripts/ifcfg-eth0 里的文件.it动力的CentOS下的ifcfg-eth0的配置详情: [root@localhost ~ ...

  3. Windows和Centos下Docker的安装配置

    Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...

  4. CentOS下使用yum安装配置和使用svn

    安装说明 系统环境:CentOS-6.3安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 检查已安装版本 ? 1 2 3 4 5 6 7 8 9 1 ...

  5. CentOS 下 redis 安装与配置

    CentOS 下 redis 安装与配置   1.到官网上找到合适版本下载解压安装 [root@java src]# wget -c http://redis.googlecode.com/files ...

  6. CentOS 下 安装 nginx 执行配置命令 ./configure 报错

    CentOS 下 安装 nginx 执行配置命令 ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx 时提示以下错误: checkin ...

  7. centos下网络的基本配置方法讲解

    上一篇中我们已经成功安装了我们的centos系统,但是我们可能发现我们安装的centos上不了网,所以这一章我们来说说如何配置centos来连接外网和局域网. 我们首先来认识一下linux下部分网络配 ...

  8. Centos下 Nginx安装与配置

    网上找了好多资料.都很难找全,这里以这个目录为主,进行备注. Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.它最常的用途是提供 ...

  9. CentOS下网卡启动、配置等ifcfg-eth0教程

    步骤1.配置/etc/sysconfig/network-scripts/ifcfg-eth0 里的文件. CentOS6.4 下的ifcfg-eth0的配置详情: [root@Jeffery]# v ...

随机推荐

  1. Android OkHttp使用与分析

    安卓开发领域,很多重要的问题都有了很好的开源解决方案,例如网络请求 OkHttp + Retrofit 简直就是不二之选."我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!& ...

  2. laravel的延迟消息队列

    laravel的延迟消息队列 这篇来自于看到朋友转的58沈剑的一篇文章:1分钟实现"延迟消息"功能(http://mp.weixin.qq.com/s?__biz=MjM5ODYx ...

  3. 菜鸟Scrum敏捷实践系列(一)用户故事概念

    菜鸟Scrum敏捷实践系列索引 菜鸟Scrum敏捷实践系列(一)用户故事概念 菜鸟Scrum敏捷实践系列(二)用户故事验收 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划 敏捷开发 ...

  4. Sublime安装Package Control插件

    一.简易安装 打开Sublime text的console.打开console的快捷时ctrl+,或者在菜单栏点击View->Show Sonsole`.打开后将下面的代码复制到console中 ...

  5. Myeclipse Java项目转换成Maven项目

    1.在Eclipse中Java项目转换成Maven项目可以在项目右键-->configure-->Convert Plug-in projects..  就可以.而在myeclipse中项 ...

  6. 关于微信小程序图片失真的解决方案

    今天来说一说 关于微信小程序的图片失真问题的解决,微信小程序的image标签要设置其宽高,不然图片若宽高过大会撑开原始图片大小的区域:如下 但是宽高设置固定了会导致有些图片和规定显示图片大小的比例不一 ...

  7. 【Flex】编辑器的缩放功能(绝对定位和相对定位)

    一.横向的ide拖动缩放效果 <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplic ...

  8. JSAAS的Activiti会签开发扩展处理

    1.什么是会签? 在流程业务管理中,任务是通常都是由一个人去处理的,而多个人同时处理一个任务,这种任务我们称之为会签任务.这种业务需求很常见,如一个请款单,领导审批环节中,就需要多个部门领导签字.在流 ...

  9. 老李分享知识:性能测试之TPS和吞吐率

    老李分享知识:性能测试之TPS和吞吐率        当增大系统的压力(或添加并发用户数)时,吞吐率和TPS的改变曲线呈大体一致,则系统基本稳定. 若压力增大时,吞吐率的曲线添加到一定程度后出现改变缓 ...

  10. Linux命令的复习总结学习

    1.-------------------------linux系统介绍------------------------------------------------------- Linux是一套 ...