ActiveMQ 入门Nodejs版
ActiveMQ 入门下载与安装
解压,运行bin/win[32|64]/activemq[.bat] 启动服务
环境信息
控制台: http://localhost:8161 默认端口:8161
服务地址:
host: localhost
port: 61613
代码例子
基本信息:
语言:Node.js
客户端:stompjs
消息发布者:
复制代码
Queue消息消费者
- // Consumer_queue.js
- var Stomp = require('stompjs');
- // Use raw TCP sockets
- var client = Stomp.overTCP('localhost', 61613);
- // uncomment to print out the STOMP frames
- // client.debug = console.log;
- var connectCallback = function(frame) {
- var subscription = client.subscribe('/queue/FirstQueue', onMessage);
- //subscription.unsubscribe();
- };
- var onMessage = function(message){
- if (message.body) {
- console.log("got message with body " + message.body)
- } else {
- console.log("got empty message");
- }
- };
- var errorCallback = function(error){
- console.log(error.headers.message);
- };
- client.connect('admin', 'admin', connectCallback,connectCallback);
复制代码
Topic消息消费者
- // Consumer_topics.js
- var Stomp = require('stompjs');
- // Use raw TCP sockets
- var client = Stomp.overTCP('localhost', 61613);
- // uncomment to print out the STOMP frames
- // client.debug = console.log;
- var connectCallback = function(frame) {
- var subscription = client.subscribe('/topic/FirstQueue', onMessage);
- //subscription.unsubscribe();
- };
- var onMessage = function(message){
- if (message.body) {
- console.log("got message with body " + message.body)
- } else {
- console.log("got empty message");
- }
- };
- var errorCallback = function(error){
- console.log(error.headers.message);
- };
- client.connect('admin', 'admin', connectCallback,connectCallback);
复制代码
效果图

注: Queue、Topic消息消费者分别启动两个,再启动消息发布者,观察Queue、Topic消息消费者接收到的消息有什么区别
Queue与Topic的比较
1、JMS Queue执行load balancer语义:
一条消息仅能被一个consumer收到。如果在message发送的时候没有可用的consumer,那么它将被保存一直到能处理该message的consumer可用。如果一个consumer收到一条message后却不响应它,那么这条消息将被转到另一个consumer那儿。一个Queue可以有很多consumer,并且在多个可用的consumer中负载均衡。
2、Topic实现publish和subscribe语义:
一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个subscriber将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的subscriber能够获得消息的一个拷贝。
3、分别对应两种消息模式:
Point-to-Point (点对点),Publisher/Subscriber Model (发布/订阅者)
其中在Publicher/Subscriber 模式下又有Nondurable subscription(非持久订阅)和durable subscription (持久化订阅)2种消息处理方式。
fr0m:http://udn.yyuap.com/thread-37813-1-1.html
ActiveMQ 入门Nodejs版的更多相关文章
- ActiveMQ入门练习
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久 ...
- jms - activeMQ入门案例
activeMQ入门案例 叨叨一波,很久没写博客了,最近比较慢,时间抽不出来,这个借口说的很尴尬...我知道作为一名合格的码农就必须养成每天一博客的习惯.希望友友们别像我这样懒,闲话不多时进入今天的主 ...
- 入门NodeJS
入门NodeJS https://www.cnblogs.com/dotnetcrazy/p/10118756.html NodeJS 1.环境配置 之前讲ES6的时候有提过一部分Node的知识,简单 ...
- 深入浅出 JMS(二) - ActiveMQ 入门指南
深入浅出 JMS(二) - ActiveMQ 入门指南 上篇博文深入浅出 JMS(一) – JMS 基本概念,我们介绍了消息通信的规范JMS,这篇博文介绍一款开源的 JMS 具体实现-- Active ...
- ActiveMQ之一--ActiveMQ入门
MQ的消费-生产者模型的一个典型的代表,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息.MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义 ...
- ActiveMQ介绍和ActiveMQ入门实例
ActiveMQ百度百科 ActiveMQ入门实例-cnblogs.com 作者用的是5.5的版本,我测试时用的是5.6,按照作者说的整了一下,走得通
- 网易短信接口集成 nodejs 版
/* name:网易短信服务集成nodejs版: author:zeq time:20180607 test: // checkValidCode('157****6954','284561').th ...
- ActiveMQ 入门和与 Spring 整合
ActiveMQ 入门演示 activemq 依赖 <dependency> <groupId>org.apache.activemq</groupId> < ...
- ActiveMQ入门系列三:发布/订阅模式
在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点 ...
随机推荐
- bzoj4571/luogu3293 美味 (主席树+贪心)
首先想到建出可持久化trie树然后在上面贪心,但是它加了一个数所以不能这么做 但依然可以贪心,仿照上面那个的过程,如果设y是在第i位上^b是1的数(前面的位数已经贪好了),我只要在[l,r]范围内能有 ...
- C++11并发——多线程std::thread (一)
https://www.cnblogs.com/haippy/p/3284540.html 与 C++11 多线程相关的头文件 C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是< ...
- react与fetch
JavaScript 中的 ajax 很早之前就有一个诟病----复杂业务下的 callback 嵌套的问题.promise 正是 js 中解决这一问题的钥匙. 接下来我们在react项目中应用到的f ...
- 中南大学2018年ACM暑期集训前期训练题集(入门题) Q: Simple Line Editor
数据有毒,一个一个读字符是错,整个字符串读入,一次就A了. 总之,数据总是没有错的,还是对c++了解地不够深刻,还有,在比赛中,一定要有勇气重构代码 错误代码: #include<iostrea ...
- SQL经典问题:找出连续日期及连续的天数
create table tmptable(rq datetime) go insert tmptable values('2010.1.1') insert tmptable values('201 ...
- cece
cece ===================== 测试样式 ======================= 循路觅宗师,形影不相离,师知吾亦知,吾乃.....成宗师? 网站导航 显示公 ...
- transform顺序浅谈
有用过transform的小伙伴们可能都会遇到一些问题,发现transform得到的结果往往不是我们所想的 例如scale(2,1) rotate(30deg) ,我们预想的结果是一个先放大的元素,然 ...
- 函数和常用模块【day04】:作用域、局部和全局变量(四)
本节内容 概述 课前前引 局部变量和全局变量 总结 一.概述 我们之前写代码,都需要声明变量,但是我们思考过变量的作用范围吗?今天我们就来讲讲变量的作用范围,这个作用范围又叫作用域.首先我们根据变量的 ...
- 在windows环境下实现开机延迟启动tomcat
如果说我们的服务器断电了 开机之后还需要手动开下服务 还需要远程连接上 然后一个一个开启 是不是很麻烦 我们可以写一个bat脚本 然后设置开机5分钟之后启动tomcat 首先配置环境变量: ...
- Vue.js 模板指令
1. 数据渲染:v-text.v-html(保存了html结构).{{}}(自动更新): 2. 控制模块隐藏:v-if:直接不渲染 DOM 元素: v-show:css 里的 display:none ...