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.8.0_131
JRE_HOME=/usr/local/java/jdk1.8.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.5/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.5/bin/activemq start

  2.5:监控activemq

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

  2.6:修改监控账号

vi /data/software/apache-activemq-5.14.5/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);
            }
        }
    }
}
时间: 2024-10-12 04:38:18

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

图文:CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证

1. 安装 nginx 1.1 nginx 包及其依赖包下载 出于模块的依赖性,Nginx 依赖以下三个包: gzip 模块需要 zlib 库(http://www.zlib.net/): rewrite 模块需要 pcre 库(http://www.pcre.org/): ssl 功能需要 openssl 库(http://www.openssl.org/): 分别下载它们的最新稳定版(截至本文最新稳定版分别是 zlib-1.2.8.tar.gz.pcre-8.36.tar.gz.openss

centos下MySQL主从同步配置

centos下MySQL主从同步配置一.环境 主机: master操作系统:centos 5.3 IP:192.168.1.222 MySQL版本:5.0.77 从机: slave操作系统:centos 5.3 IP:192.168.1.220 MySQL版本:5.0.77 二.创建数据库 分别登录master机和slave机的mysql:mysql –u root –p 创建数据库:create database repl; 三.master机和slave机的相关配置 1.修改master机器

CentOS 下 redis 安装与配置

CentOS 下 redis 安装与配置 1.到官网上找到合适版本下载解压安装 Xml代码   [[email protected] src]# wget -c http://redis.googlecode.com/files/redis-2.4.7.tar.gz [[email protected] src]# tar -zxv -f redis-2.4.7.tar.gz [[email protected] src]# cd /usr/local/src/redis-2.4.7 [[ema

Windows和Centos下Docker的安装配置

Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 专业版系统的安装包,需要开启Hyper-V.然后才能正常安装 Hyper-V 就是虚拟机中的一种 开启Hyper-V win10专业版开启方式 键入win,搜索"windows"开打"启用或关闭windows功能",找到Hyper-V并勾选 win10家庭版开启方式

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

步骤1.配置/etc/sysconfig/network-scripts/ifcfg-eth0 里的文件. CentOS6.4 下的ifcfg-eth0的配置详情: [[email protected]]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet UUID=5ff155a4-9a33-4224-8ae0-706eadf7fa3c HWADDR=00:15:5D:A1:58:00 ONBOOT=n

CentOS下JDK安装和配置

JDK安装和配置 第一步:安装JDK 1.下载jdk-1.8.0,rz到指定目录下 2.tar开 $>su centos ;cd ~ $>mkdir downloads $>cp jdk-1.8.0 ~\downloads $>tar -xzvf jdk-1.8.0 3.创建/soft文件夹,并移动tar开的文件到soft下 $>sudo mkdir /soft $>sudo chown centos:centos /soft    //更改目录的所属用户 $>m

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

上一篇中我们已经成功安装了我们的centos系统,但是我们可能发现我们安装的centos上不了网,所以这一章我们来说说如何配置centos来连接外网和局域网. 我们首先来认识一下linux下部分网络配置文件,我们经常用到的几个网络配置文件分别为 /etc/udev/rules.d/70-persistent-net.rules  在此配置文件中可以看到关于机器的MAC地址(可以根据此配置文件看出网卡数量) /etc/resolv.conf 配置修改DNS(有时可以通过修改ifcfg-eth0文件

Linux CentOS 下apache activemq的安装与配置

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范 的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

centos下haproxy日志的配置

   涉及到的配置文件如下    1)  /etc/haproxy/haproxy.conf  //这个是haproxy程序的主配置文件,具体路径可以随意指定,主要是下面这句话         log         localhost   local0    2)  /etc/rsyslog.conf           //这个配置文件不用动,默认会有下面的设置,会读取 /etc/rsyslog.d/*.conf目录                                 //下的配