ActiveMQ 入门下载与安装

官方下载地址

解压,运行bin/win[32|64]/activemq[.bat] 启动服务

环境信息

控制台: http://localhost:8161 默认端口:8161

服务地址:

host: localhost 
port: 61613

代码例子

基本信息:

语言:Node.js 
客户端:stompjs
 

消息发布者:

 

复制代码

Queue消息消费者

  1. // Consumer_queue.js
  2. var Stomp = require('stompjs');
  3. // Use raw TCP sockets
  4. var client = Stomp.overTCP('localhost', 61613);
  5. // uncomment to print out the STOMP frames
  6. // client.debug = console.log;
  7. var connectCallback = function(frame) {
  8. var subscription = client.subscribe('/queue/FirstQueue', onMessage);
  9. //subscription.unsubscribe();
  10. };
  11. var onMessage = function(message){
  12. if (message.body) {
  13. console.log("got message with body " + message.body)
  14. } else {
  15. console.log("got empty message");
  16. }
  17. };
  18. var errorCallback = function(error){
  19. console.log(error.headers.message);
  20. };
  21. client.connect('admin', 'admin', connectCallback,connectCallback);

复制代码

Topic消息消费者

  1. // Consumer_topics.js
  2. var Stomp = require('stompjs');
  3. // Use raw TCP sockets
  4. var client = Stomp.overTCP('localhost', 61613);
  5. // uncomment to print out the STOMP frames
  6. // client.debug = console.log;
  7. var connectCallback = function(frame) {
  8. var subscription = client.subscribe('/topic/FirstQueue', onMessage);
  9. //subscription.unsubscribe();
  10. };
  11. var onMessage = function(message){
  12. if (message.body) {
  13. console.log("got message with body " + message.body)
  14. } else {
  15. console.log("got empty message");
  16. }
  17. };
  18. var errorCallback = function(error){
  19. console.log(error.headers.message);
  20. };
  21. 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版的更多相关文章

  1. ActiveMQ入门练习

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

  2. jms - activeMQ入门案例

    activeMQ入门案例 叨叨一波,很久没写博客了,最近比较慢,时间抽不出来,这个借口说的很尴尬...我知道作为一名合格的码农就必须养成每天一博客的习惯.希望友友们别像我这样懒,闲话不多时进入今天的主 ...

  3. 入门NodeJS

    入门NodeJS https://www.cnblogs.com/dotnetcrazy/p/10118756.html NodeJS 1.环境配置 之前讲ES6的时候有提过一部分Node的知识,简单 ...

  4. 深入浅出 JMS(二) - ActiveMQ 入门指南

    深入浅出 JMS(二) - ActiveMQ 入门指南 上篇博文深入浅出 JMS(一) – JMS 基本概念,我们介绍了消息通信的规范JMS,这篇博文介绍一款开源的 JMS 具体实现-- Active ...

  5. ActiveMQ之一--ActiveMQ入门

    MQ的消费-生产者模型的一个典型的代表,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息.MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义 ...

  6. ActiveMQ介绍和ActiveMQ入门实例

    ActiveMQ百度百科   ActiveMQ入门实例-cnblogs.com      作者用的是5.5的版本,我测试时用的是5.6,按照作者说的整了一下,走得通

  7. 网易短信接口集成 nodejs 版

    /* name:网易短信服务集成nodejs版: author:zeq time:20180607 test: // checkValidCode('157****6954','284561').th ...

  8. ActiveMQ 入门和与 Spring 整合

    ActiveMQ 入门演示 activemq 依赖 <dependency> <groupId>org.apache.activemq</groupId> < ...

  9. ActiveMQ入门系列三:发布/订阅模式

    在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点 ...

随机推荐

  1. 【BZOJ2285】[SDOI2011]保密(分数规划,网络流)

    [BZOJ2285][SDOI2011]保密(分数规划,网络流) 题面 BZOJ 洛谷 题解 首先先读懂题目到底在干什么. 发现要求的是一个比值的最小值,二分这个最小值\(k\),把边权转换成\(t- ...

  2. 洛谷P3230 比赛

    emmmmmm,这个之前讲课的原题居然出到比赛里了. 我怒肝2h+然后A了此题,结果还是被某高一巨佬吊打...... 题意:n个球队两两比赛,胜得3分,败得0分,平得1分. 现有一个总分表,求问可能的 ...

  3. 在Linux上安装Elasticsearch Head工具.md

    在Linux上安装Elasticsearch Head工具 1.修改elasticsearch的参数 编辑elasticsearch的配置文件elasticsearch.yml $ vim /data ...

  4. shell脚本递归压缩实践

    #!/bin/bash Src_Path=/data/www/logs Dst_Path=/data/www/logs_bak for rfile in `find $Src_Path/ -depth ...

  5. 2、JDBC-CURD

    添加,修改,删除 package test.jdbc; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Bef ...

  6. SQL语句(四)可视化创建和修改表

    可视化创建修改表 数据库(teaching)->表->新建表 数据库(teaching)->表->(右键)设计->CHECK约束->添加---->标识(名称) ...

  7. Winform窗体设计工具源码

    源代码:QQ群616945527,博客资源

  8. Mac下使用Wine安装PowerDesigner15

    下载: (链接: https://pan.baidu.com/s/1bpEYyIV 密码: 5ymj) 安装: 1.安装Wine 参考:http://www.cnblogs.com/EasonJim/ ...

  9. bzoj 1724 优先队列 切割木板

    倒着的石子合并,注意不是取当前最长木板贪心做,而是取当前最小累加答案: 例如 4 5 6 7 若按第一种思路:ans=22+15+9 第二种:ans=22+13+9,可以先从中间某一块分开,这样答案更 ...

  10. C# 一般处理程序生成验证码

    using System; using System.Collections; using System.Data; using System.Linq; using System.Web; usin ...