1.各种安装
2.简单配置:

jetty.xml

localhost:8161

配置:

activemq添加stomp的61613接口

conf/activemq.xml

<transportConnector name="stomp+nio" uri="stomp+nio://0.0.0.0:61613?transport.closeAsync=false"/>
3.创建消息列队
<?php
$queue = "/queue/userReg"; try {
$stomp = new Stomp('tcp://127.0.0.1:61613');
} catch (StompException $e) {
die('Connection failed: ' . $e->getMessage());
} $obj = new Stdclass();
$obj->username = 'smartom';
$obj->password = '123';
$obj->status = 1;
$stomp->send('/queue/userReg', json_encode($obj));
4.销毁消息列队
<?php
$queue = "/queue/userReg"; try {
$stomp = new Stomp('tcp://127.0.0.1:61613');
} catch (StompException $e) {
die('Connection failed: ' . $e->getMessage());
} $isSubscribe = $stomp->subscribe($queue); //订阅 while ($stomp->hasFrame()) { //循环读取队列
$frame = $stomp->readFrame(); //读取下一个
$user = json_decode($frame->body);
/*
处理消息
*/
if($user->status=1){
$user->status=2;
$stomp->send('/queue/sendVerify', $frame->body); //发送下一个
$stomp->ack($frame); //销毁列队
} sleep(3); }

5.开启事务

$queue1 = "/queue/userReg";
$queue2 = "/queue/sendMsg";
$stomp->begin("news");
if($stomp->send($queue1,json_encode($mainSite), array('transaction' => 'news')) && $stomp->send($queue2,json_encode($searchIndex) , array('transaction' => 'news')) )//发布到主站消息
{
$stomp->commit("news");
}

6.topic多个订阅者

queue是单个订阅者

$broker = 'tcp://192.168.222.129:61613';
$queue = "/topic/order_create";

7.集群配置

8.共享文件系统

使用共享系统来做 Master/slave集群

9.共享数据库方式

所有消息读写其实都是数据库操作,性能完全取代与数据库的性能。

10.基于zookeeper 的主从(levelDB Master/Slave)

基于zookeeper 来选举出一个master ,其他节点自动作为slave实时同步消息.

安装相应工具

yum -y install nfs-utils rpcbind

nfs(network file system) 网络文件系统

rpcbind 是一个RPC服务,主要是在nfs 共享时负责通知客户端,服务器的nfs端口号

PHP用ActiveMq 实现消息列队的更多相关文章

  1. ActiveMQ发消息和收消息

    来自:http://blog.163.com/chengwei_1104/blog/static/53645274201382315625329/ ActiveMQ 是Apache出品,最流行的,能力 ...

  2. ActiveMQ之消息指针

    消息指针(Message cursor)是activeMQ里一个非常重要的核心类,它是提供某种优化消息存储的方法.消息中间件的实现一般都是当消费者准备好消费消息的时候,它会从持久化存储中一批一批的读取 ...

  3. 在PHP中如何使用消息列队

    /** * 消息列队服务 * @author zhou.tingze * @example * -----------------------------------Create----------- ...

  4. 消息中间件--ActiveMQ&JMS消息服务

    ### 消息中间件 ### ---------- **消息中间件** 1. 消息中间件的概述 2. 消息中间件的应用场景 * 异步处理 * 应用解耦 * 流量削峰 * 消息通信   --------- ...

  5. ActiveMQ的消息持久化机制

    为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制. ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式 ...

  6. 【ActiveMQ入门-5】ActiveMQ学习-消息持久性

    ActiveMQ中的消息持久性     ActiveMQ很好的支持了消息的持久性(Persistence).消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是 ...

  7. 消息列队 php 基于redis 实现

    说明 消息列队 基于PHP 实现. 之前 用python 的 flower 实现了 列队. 今天这里我们用的是 PHP 来实现: 在实际的业务环境中 PHP 用的多些: PHP 实现列队 最重要的是用 ...

  8. 消息列队 分布式事务解办法 celery flower使用总结

    前言 项目中有场景 需要用到 分布式事务业务,经过查下资料把学习相关笔记做记录方便他人或者自己后面查看. 场景 在网站A业务中有个操作 是 要在网站B中新建一台服务器跑业务.A中执行B中的接口创建服务 ...

  9. 【Java Web开发学习】Spring消息-ActiveMQ发送消息

    ActiveMQ发送消息 转载:http://www.cnblogs.com/yangchongxing/p/9042401.html Java消息服务(Java Message Service, J ...

随机推荐

  1. html页面中的title设置为空格

    这样页面加载时,title会显示为空,而不是当前页面的URL. document.title='\u200E'  

  2. MySQL的架构与历史

    MySQL的最主要特性是它的存储引擎架构,这种架构设计将查询处理以及其他系统任务和数据的存储/提取相分离. MySQL最上层服务是一些如连接处理,授权认证,安全等. MySQL的核心服务功能大部分度在 ...

  3. 微信小程序中时间转化为时间戳(安卓和苹果兼容性)

    在IOS中时间显示NAN,后来才知道是由于安卓和IOS时间解析时间的时间格式不一致: 在安卓机中2018-06-21 16:00:21 IOS识别的格式是 2018/06/21: 所以在处理IOS机器 ...

  4. python基于并发与socket实现远程文件传输程序

    FTP程序 Client: * bin/start.py 程序入口 * conf/配置文件存放 * core/ * auth.py 登陆,注册以及上传下载查看当前文件夹下文件以及删除功能存放 * cl ...

  5. 一个简单的 openssl 示例

    ////生成一个私钥////$key=openssl_pkey_new();openssl_pkey_export($key,$out);//等于下面写入的内容////将私钥写入一个文件////ope ...

  6. Redis 当成数据库在使用和可靠的分布式锁,Redlock 真的可行么?

    怎样做可靠的分布式锁,Redlock 真的可行么? https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html ...

  7. 《DSP using MATLAB》Problem 5.2

    代码: %% ---------------------------------------------------------------------------------- %% Output ...

  8. eclipse项目版本控制忽略上传文件

    *.classpath *.project */.git/* .deployables .git .settings .svn _svn bin target

  9. day3 反射与动态代理

    import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Metho ...

  10. UBUNTU 安装教程

    玩过linux,只是博主觉得现在的很多服务器都是linux系统的,而自己属于那种前端也搞,后台也搞,对框架搭建也感兴趣,但是很多生产上的框架和工具都是安装在服务器上的,而且有不少大公司都要求熟悉在li ...