百色金融新闻网
您的位置:百色金融新闻网 > 金融新闻 > ActiveMQ消息中间件(一)-activemq

ActiveMQ消息中间件(一)-activemq

作者:百色金融新闻网日期:

返回目录:金融新闻

最新资讯《ActiveMQ消息中间件(一)-activemq》主要内容是activemq,ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。,现在请大家看具体新闻资讯。

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现

JMS:Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

1 下载

apache-activemq-5.0.0.tar.gz

tar zxvf apache-activemq-5.0.0.tar.gz

cd 到bin下执行 ./activemq start

61616是给java用的tcp端口

8161是后台管理端口

ActiveMQ消息中间件(一)

activemq

2 支持的语言

Java,C,C ++,C#,Ruby,Perl,Python,PHP

3 应用协议

OpenWire,Stomp REST,WS Notification,XMPP,AMQP

4 应用场景及问题

https://blog.csdn.net/dly1580854879/article/details/68486367

5 队列名称定义

\t/queue/email,对应后台管理页面的email队列
\t/topic/query

6 activemq+stomp协议+php demo实现

stomp,php扩展安装

下载,编译安装,然后把生成的stomp.so加入php.ini文件中

\textension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/stomp.so

使用命令php -m 查看是否成功

生产者,不断的向队列投递消息

\t#consumer.php
\t<?php
\tdate_default_timezone_set('Asia/Shanghai');
\t
\t$queue = '/queue/email';
\t
\ttry {
\t $stomp = new Stomp('tcp://10.16.77.246:61613');
\t $stomp->subscribe($queue);
\t
\t while (true) {
\t if ($stomp->hasFrame()) {
\t $frame = $stomp->readFrame();
\t if ($frame != NULL) {
\t print "Received: " . $frame->body . " - time now is " . date("Y-m-d H:i:s"). "\\n";
\t $stomp->ack($frame);
\t }
\t } else {
\t print "No frames to read\\n";
\t }
\t }
\t
\t} catch(StompException $e) {
\t die('Connection failed: ' . $e->getMessage());
\t}

消费者,当检测到队列非空,就取出消息进行消费

消费有两种模式:推模式、拉模式

\t#publisher.php
\t<?php
\t
\tdate_default_timezone_set('Asia/Shanghai');
\t
\t$queue = '/queue/email';
\t$msg = 'bar';
\t
\ttry {
\t $stomp = new Stomp('tcp://10.16.77.246:61613');
\t
\t while (true) {
\t $stomp->send($queue, $msg." ". date("Y-m-d H:i:s"));
\t sleep(1);
\t }
\t
\t} catch(StompException $e) {
\t die('Connection failed: ' . $e->getMessage());
\t}

php publisher.php

不停的向email队列里发消息

ActiveMQ消息中间件(一)

publisher

php consumer.php

队列email里的消息被消费,消费者cli打印消息内容

ActiveMQ消息中间件(一)

ActiveMQ消息中间件(一)

7 使用supervisor监控activemq,防止挂掉

\t[program:activemq]
\tcommand=/var/www/softwares/activemq/bin/activemq
\t;pprocess_name=%(program_name)s_%(process_num)02d
\tprocess_name=%(program_name)s
\tnumprocs=1
\tautostart=true
\tautorestart=true
\tstopasgroup=true
\tkillasgroup=true
\tstartsecs=1

当activemq进程挂了会自动重启

ActiveMQ消息中间件(一)

supervisor

参考文档

1 http://activemq.apache.org/

2 http://php.net/manual/zh/book.stomp.php

3 https://blog.csdn.net/dly1580854879/article/details/68486367

相关阅读

  • ActiveMQ学习笔记之HelloWorld-activemq

  • 百色金融新闻网金融新闻
  • activemq,今天比较忙,忙的连车票都没来得及买,明天要请假一天回趟老家。所以今天的文章直到现在才抽出一点时间来写,手动已经准备好了要发布的内容,只是没有整理比较凌乱,所
  • ActiveMQ的应用场景及优势-activemq

  • 百色金融新闻网金融新闻
  • activemq,队列在大型电子商务类网站,如京东、淘宝、去哪儿等网站有着深入的应用。队列的主要作用是消除高并发访问高峰,加快网站的响应速度。
关键词不能为空

经济新闻_金融新闻_财经要闻_理财投资_理财保险_百色金融新闻网