centos下的activemq的配置及PHP的使用
由于公司打算将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&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的使用的更多相关文章
- linux和CentOS下网卡启动、配置等ifcfg-eth0教程(转自)
转自:http://www.itokit.com/2012/0415/73593.html it 动力总结系统安装好后,通过以下二个步骤就可以让你的系统正常上网(大多正常情况下).步骤1.配置/etc ...
- CentOS下网卡启动、配置等ifcfg-eth0教程(转)
步骤1.配置/etc/sysconfig/network-scripts/ifcfg-eth0 里的文件.it动力的CentOS下的ifcfg-eth0的配置详情: [root@localhost ~ ...
- Windows和Centos下Docker的安装配置
Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...
- CentOS下使用yum安装配置和使用svn
安装说明 系统环境:CentOS-6.3安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 检查已安装版本 ? 1 2 3 4 5 6 7 8 9 1 ...
- CentOS 下 redis 安装与配置
CentOS 下 redis 安装与配置 1.到官网上找到合适版本下载解压安装 [root@java src]# wget -c http://redis.googlecode.com/files ...
- CentOS 下 安装 nginx 执行配置命令 ./configure 报错
CentOS 下 安装 nginx 执行配置命令 ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx 时提示以下错误: checkin ...
- centos下网络的基本配置方法讲解
上一篇中我们已经成功安装了我们的centos系统,但是我们可能发现我们安装的centos上不了网,所以这一章我们来说说如何配置centos来连接外网和局域网. 我们首先来认识一下linux下部分网络配 ...
- Centos下 Nginx安装与配置
网上找了好多资料.都很难找全,这里以这个目录为主,进行备注. Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.它最常的用途是提供 ...
- CentOS下网卡启动、配置等ifcfg-eth0教程
步骤1.配置/etc/sysconfig/network-scripts/ifcfg-eth0 里的文件. CentOS6.4 下的ifcfg-eth0的配置详情: [root@Jeffery]# v ...
随机推荐
- 菜鸟聊JavaScript中this
菜鸟聊this this在JavaScript中是一个比较头疼的问题,我现在以一枚菜鸟的观点结合代码简单的谈下JavaScript中的this指向问题. 1.例子1 function a() { va ...
- OpenCV使用FindContours进行二维码定位
我使用过FindContours,而且知道有能够直接寻找联通区域的函数.但是我使用的大多只是"最大轮廓"或者"轮廓数目"这些数据.其实轮廓还有另一个很重要的性质 ...
- 使用Nginx+CppCMS构建高效Web应用服务器(之二)
使用Nginx+CppCMS构建高效Web应用服务器(之二) 上一篇 使用Nginx+CppCMS构建高效Web应用服务器(之一) 大致介绍了网站的整体架构,实际上通过调用REST获取数据并没有实现. ...
- cuda编程学习3——VectorSum
这个程序是把两个向量相加 add<<<N,1>>>(dev_a,dev_b,dev_c);//<N,1>,第一个参数N代表block的数量,第二个参数1 ...
- ThinkPHP3.2.3版本验证码异步第二次验证时失败的问题解决
最近在用TP3.2.3做一个小项目,纠结于验证码验证问题,重点在于二次验证,举个例子就是常见的登录页面上有个验证码输入框,当用户输入验证码并且鼠标点击在这个输入框之外时候,触发onblur事件,然后a ...
- 使用idea2017搭建SSM框架
搭建个SSM框架居然花费了我好长时间!特此记录! 需要准备的环境: idea 2017.1 jdk1.8 Maven 3.3.9 请提前将idea与Maven.jdk配置好,本次项目用的都是比较新的 ...
- dotweb——go语言的一个微型web框架(三)路由注册
上一章我们讲了如何启动一个dotweb程序,本篇文章将介绍如何注册路由. router是dotweb用来管理路由的结构体,它提供了一些关于路由操作函数. app := dotweb.New() rou ...
- exports和module.exports的区别
总结:exports是module.exports的指向. 1. module应该是require方法中,上下文中的对象 2. exports对象应该是上下文中引用module.exports的新对象 ...
- Linux线程的创建
一.线程与进程的区别 1.线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源. 2.进程是资源分配的基本单位.所有与该进程有关的资源,都 ...
- 【Electron】Electron开发入门
Electron简介: Electron提供了丰富的本地(操作系统)的API,使你能够使用纯JavaScript来创建桌面应用程序,并且跨平台(win,mac,linux等各种PC端平台).与其它各种 ...