《ActiveMQ in Action》例子
本章内容:
- 介绍本书中所有例子的使用场景
- 使用 Maven 编译、运行例子
- 例子中怎么使用 ActiveMQ
简介
ActiveMQ 不仅实现了 JMS 规范中定义的所有特性,也额外提供了一些特有且有用的特性。我们会在 3.1 小节详细列说这些特性,并且书中剩余的章节还会继续讨论这些特性。为了演示这些特性,我们创建了两个基于实际业务模型的例子。跟 ActiveMQ 发布版自定的例子来比,这两个例子对于演示来说更加完整且更加浅显易懂。
这两个例子,一个是基于股票信息系统,另外一个基于任务队列。这两个例子是对 ActiveMQ 自带的例子的扩充。我们首先会简单地介绍下这些例子的使用场景,然后深入讨论如何使用它们。如果你想温习这些例子,随时可以回来复读本章内容。
股票信息系统使用了发布/订阅模式。发布者会广播股票的价格信息到每一个感兴趣的订阅者。消息被发送到成为“主题”的地址,然后客户端均从这个地址接收消息。
任务队列系统使用了点对点模式。消息生产者发送工作消息到 JMS 队列,消费者从这个队列中接收消息并处理。点对点模式不需要生产者和消费者同时在线。队列会一直保留收到的消息,直到有消费者把它消费掉。当消费者可用时,队列会把消息发给每一个消费者,但每个消息只会发给一个消费者,队列使用轮询算法向每一个消费者分发消息。
股票价格信息系统
股票价格信息系统使用了发布/订阅模式。这里作者说:消费者要想接收到所有的消息,则必须得在生产者启动之前启动。这里我一直有几个疑问:
- 发布/订阅模式中,若某一个消费者在生产者启动之后启动的,那么这个消费者还能接收到启动之后生产者生产的消息吗?可以正常接收的!
- 队列模式中,若某一个消费者在生产者启动之前启动了,对其接收消息有何影响?接收一切正常!
- 队列模式中,若某一个消费者在生产者启动之后启动了,对其接收消息有何影响?接收一切正常!
- 队列模式中,两个消费者 C1 和 C2,一个生产者 P,若启动顺序是:C1--->P--->C2,则 C1 和 C2 接收消息有什么不同?完全是按照正常套路走的,轮询分发消息!
工作队列系统
工作队列系统使用了队列模式。
《ActiveMQ in Action》例子的更多相关文章
- ActiveMQ in Action(6) - Features
关键字: activemq 2.6 Features ActiveMQ包含了很多功能强大的特性,下面简要介绍其中的几个.2.6.1 Exclusive Consumer Queue中的消息 ...
- 《ActiveMQ in Action》【PDF】下载
内容介绍TheApache ActiveMQ message broker is an open source implementation ofthe Java Message Service sp ...
- ActiveMQ in Action(7) - Wildcards
关键字: activemq 2.6.7 Wildcards Wildcards用来支持联合的名字分层体系(federated name hierarchies).它不是JMS规范的一部分,而是A ...
- ActiveMQ in Action(5) - Clustering
关键字: activemq 2.5 Clustering ActiveMQ从多种不同的方面提供了集群的支持.2.5.1 Queue consumer clusters ActiveMQ支持 ...
- ActiveMQ in Action(3) - Persistence
关键字: activemq 2.3 Persistence2.3.1 AMQ Message Store AMQ Message Store是ActiveMQ5.0缺省的持久化存储.Messag ...
- ActiveMQ in Action(4) - Security
关键字: activemq 2.4 Security ActiveMQ支持可插拔的安全机制,用以在不同的provider之间切换.2.4.1 Simple Authentication Plug ...
- ActiveMQ in Action(2) - Transport
关键字: activemq 2.2 Transport ActiveMQ目前支持的transport有:VM Transport.TCP Transport.SSL Transport.Peer ...
- ActiveMQ in Action(1) - JMS
关键字: activemq 1 JMS 在介绍ActiveMQ之前,首先简要介绍一下JMS规范.1.1 JMS的基本构件1.1.1 连接工厂 连接工厂是客户用来创建连接的对象,例如Acti ...
- ActiveMQ的简单例子应用
ActiveMQ是一种消息中间件,它实现了JMS规范,提供点对点和订阅-发布两种模式.下面介绍下ActiveMQ的使用: 一.环境的搭建 首先我们需要下载ActiveMQ的安装包,下载地址http:/ ...
随机推荐
- AngularCli项目中添加字体图标(Font)详解
本文主要讲如何在AngularCli生成的项目中使用字体图标. 一 SVG图标准备 将需要转换为字体图标的图片转换为SVG格式. 这个让项目视觉设计师搞定即可. 二 SVG图标转Font 可以通过Ic ...
- Vue中获取dom元素
Vue.js虽然说是数据驱动页面的,但是有时候我们也要获取dom对象进行一些操作. vue的不同版本获取dom对象的方法不一样 Vue.js 1.0版本中,通过v-el绑定,然后通过this.els ...
- Docker介绍及优缺点对比分析
1.什么是Docker Docker最初是dotCloud公司创始人Solomon Hykes在法国期间发起的一个公司内部项目,于2013年3月以Apache 2.0授权协议开源,主要项目代码在Git ...
- 我的Android进阶之旅------>Android中通过adb shell input来模拟滑动、按键、点击事件
今天在维护公司的一个小项目的时候,发现按公司手机的某个物理按键,激活相应的Service后,会在屏幕上模拟的点击了屏幕的某个坐标点.好家伙,原来是之前该项目的版本是按这个物理按键后,会弹出一个对话框, ...
- PAT 1070. 结绳(25)
给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原来两段绳子的长度 ...
- java中参数传递的问题
public class Test { public static void main(String[] args) { StringBuffer a = new StringBuffer(" ...
- MyISAM VS InnoDB
A.构成上的区别: InnoDB只在磁盘上存储一个文件.frm 每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型: 文 ...
- iOS开发之计算器
本项目基于swift3.0的语法. // // ViewController.swift // 加法计算器 // // Created by 葛杨杨 on 2017/7/25. // Copyrigh ...
- python操作——RabbitMQ
RabbitMQ是一个在AMQP基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue,消息队列(MQ)是一种应用程序对 ...
- SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传
SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...