本章内容:

  • 介绍本书中所有例子的使用场景
  • 使用 Maven 编译、运行例子
  • 例子中怎么使用 ActiveMQ

简介

ActiveMQ 不仅实现了 JMS 规范中定义的所有特性,也额外提供了一些特有且有用的特性。我们会在 3.1 小节详细列说这些特性,并且书中剩余的章节还会继续讨论这些特性。为了演示这些特性,我们创建了两个基于实际业务模型的例子。跟 ActiveMQ 发布版自定的例子来比,这两个例子对于演示来说更加完整且更加浅显易懂。
这两个例子,一个是基于股票信息系统,另外一个基于任务队列。这两个例子是对 ActiveMQ 自带的例子的扩充。我们首先会简单地介绍下这些例子的使用场景,然后深入讨论如何使用它们。如果你想温习这些例子,随时可以回来复读本章内容。
股票信息系统使用了发布/订阅模式。发布者会广播股票的价格信息到每一个感兴趣的订阅者。消息被发送到成为“主题”的地址,然后客户端均从这个地址接收消息。
任务队列系统使用了点对点模式。消息生产者发送工作消息到 JMS 队列,消费者从这个队列中接收消息并处理。点对点模式不需要生产者和消费者同时在线。队列会一直保留收到的消息,直到有消费者把它消费掉。当消费者可用时,队列会把消息发给每一个消费者,但每个消息只会发给一个消费者,队列使用轮询算法向每一个消费者分发消息。

股票价格信息系统

股票价格信息系统使用了发布/订阅模式。这里作者说:消费者要想接收到所有的消息,则必须得在生产者启动之前启动。这里我一直有几个疑问:

  1. 发布/订阅模式中,若某一个消费者在生产者启动之后启动的,那么这个消费者还能接收到启动之后生产者生产的消息吗?可以正常接收的!
  2. 队列模式中,若某一个消费者在生产者启动之前启动了,对其接收消息有何影响?接收一切正常!
  3. 队列模式中,若某一个消费者在生产者启动之后启动了,对其接收消息有何影响?接收一切正常!
  4. 队列模式中,两个消费者 C1 和 C2,一个生产者 P,若启动顺序是:C1--->P--->C2,则 C1 和 C2 接收消息有什么不同?完全是按照正常套路走的,轮询分发消息!

工作队列系统

工作队列系统使用了队列模式。

《ActiveMQ in Action》例子的更多相关文章

  1. ActiveMQ in Action(6) - Features

    关键字: activemq 2.6 Features    ActiveMQ包含了很多功能强大的特性,下面简要介绍其中的几个.2.6.1 Exclusive Consumer    Queue中的消息 ...

  2. 《ActiveMQ in Action》【PDF】下载

    内容介绍TheApache ActiveMQ message broker is an open source implementation ofthe Java Message Service sp ...

  3. ActiveMQ in Action(7) - Wildcards

    关键字: activemq 2.6.7 Wildcards    Wildcards用来支持联合的名字分层体系(federated name hierarchies).它不是JMS规范的一部分,而是A ...

  4. ActiveMQ in Action(5) - Clustering

    关键字: activemq 2.5 Clustering    ActiveMQ从多种不同的方面提供了集群的支持.2.5.1 Queue consumer clusters    ActiveMQ支持 ...

  5. ActiveMQ in Action(3) - Persistence

    关键字: activemq 2.3 Persistence2.3.1 AMQ Message Store    AMQ Message Store是ActiveMQ5.0缺省的持久化存储.Messag ...

  6. ActiveMQ in Action(4) - Security

    关键字: activemq 2.4 Security    ActiveMQ支持可插拔的安全机制,用以在不同的provider之间切换.2.4.1 Simple Authentication Plug ...

  7. ActiveMQ in Action(2) - Transport

    关键字: activemq 2.2 Transport    ActiveMQ目前支持的transport有:VM Transport.TCP Transport.SSL Transport.Peer ...

  8. ActiveMQ in Action(1) - JMS

    关键字: activemq 1 JMS    在介绍ActiveMQ之前,首先简要介绍一下JMS规范.1.1 JMS的基本构件1.1.1 连接工厂    连接工厂是客户用来创建连接的对象,例如Acti ...

  9. ActiveMQ的简单例子应用

    ActiveMQ是一种消息中间件,它实现了JMS规范,提供点对点和订阅-发布两种模式.下面介绍下ActiveMQ的使用: 一.环境的搭建 首先我们需要下载ActiveMQ的安装包,下载地址http:/ ...

随机推荐

  1. Python菜鸟之路:Django 数据库操作进阶F和Q操作

    Model中的F F 的操作通常的应用场景在于:公司对于每个员工,都涨500的工资.这个时候F就可以作为查询条件 from django.db.models import F models.UserI ...

  2. 根据字段表 自动创建 表SQL

    create PROC CreateTableSql ) AS ) ,) ,) ) ,) ,) ,@IsIdentity bit ,@IsNull bit ,@IsPrimaryKey bit ),) ...

  3. Java中volatile关键字实现原理

    原文地址http://www.cnblogs.com/xrq730/p/7048693.html,转载请注明出处,谢谢 前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是j ...

  4. springcloud zuul

    zuul是springcloud的API网关. 入口也是springmvc的DispatcherServlet. 实际的handler是ZuulController,通过handleRequest方法 ...

  5. ubuntu安装deb文件

    install the deb-package, e.g. using the Terminal command$ sudo apt install <path-to-smartgit-deb- ...

  6. WCF 远程服务器返回了意外响应: (400) Bad Request。

    WCF 端  <system.web> <httpRuntime maxRequestLength="2147483647" /> </system. ...

  7. key points & (QA) about RPKI

    @1: Q: What does ROA look like?Since ROA means which ASes are allowed for originating routes to some ...

  8. EasyMock 常见异常

    1. java.lang.IllegalStateException: calling verify is not allowed in record state 含义:不允许在记录状态(record ...

  9. Hibernate学习---缓存机制

    前言:这些天学习效率比较慢,可能是手头的事情比较多,所以学习进度比较慢. 在之前的Hibernate学习中,我们无论是CURD,对单表查询还是检索优化,我们好像都离不开session,session我 ...

  10. oc字符串+数组+字典操作题目

    1. 判断中间目录是否存在 (10分) 比如 传入字符串 @"/home/qianfeng/oc.txt" 和 @"qianfeng" 返回:YES 传入字符串 ...