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. scrapy 中间件

    一.中间件的分类 scrapy的中间件理论上有三种(Schduler Middleware,Spider Middleware,Downloader Middleware),在应用上一般有以下两种 1 ...

  2. SPI、I2C、UART三种串行总线协议的区别

    第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous R ...

  3. hdu 2845 Beans(最大不连续子序列和)

    Problem Description Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled ...

  4. CF603E Pastoral Oddities

    CF603E Pastoral Oddities 度数不好处理.转化题意:不存在连通块为奇数时候就成功了(自底向上调整法证明) 暴力:从小到大排序加入.并查集维护.全局变量记录奇数连通块的个数 答案单 ...

  5. 【模板】spfa

    代码如下 #include <bits/stdc++.h> using namespace std; const int maxv=1e4+10; const int maxe=5e5+1 ...

  6. (Java)入门训练 斐波那契数列

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  7. Linux command ------ vi / vim

    EDIT mode to GENERAL mode: press ESC General mode: operate file :q!    :force to close the file but ...

  8. java连接mysql的过程

    今天突然心血来潮,想要用java连接mysql,记得以前是在vs2010的环境下用C#连接sql sever,其实他们的方法都差不多. 现在就可以简单的介绍下java如何连接mysql 第一步,设计m ...

  9. python---一个简单的socket

    server端: 1 创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type )      #family参数代表地址家族,可为 ...

  10. scrapy xpath、正则表达式、css选择器

    scrapy xpath XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力. 学习 ...