■本书所有示例的用户案例简介
■使用Maven来编译和运行示例
■如何使用ActiveMQ的示例应用程序
ActiveMQ提供JMS规范的所有特性并在此基础上添加了许多强大功能。这是如图3.1所示,通过本书剩余部分将讨论这些功能。为了最好的展示这些特性,创建了两个新示例,仿照真实的业务领域。相对于分散的ActiveMQ示例,这些示例能以更完整和简单的方式说明ActiveMQ特性。
/F3.1
其中一个例子是基于一个股票投资组合,另一个是基于一个工作队列。这两个例子的使用范围不局限于ActiveMQ。用例为每个例子做简要介绍,接下来更深层次地讨论如何使用它们。你可以随时回到本章对这些例子做一些回顾,如果你需要更深入理解这些例子。
股票投资组合展示了发布/订阅消息传递域。出版商为感兴趣的用户广播股票价格信息。消息被发布到被称为主题的JMS目的地,客户端通过主动订阅来接收消息。这个模型中,代理为每个订阅者提供消息时不需要轮询消息。每个活跃用户接收自己的发布到主题的消息副本。通过主题,发布者和订阅者实现解耦。除非使用持久订阅,订阅者必须保持活跃为了接收消息发布者发布到主题的消息。通过pub/sub域,给定目的地的每条消息的副本将交付给所有的主题订阅者。
工作队列演示点对点消息传递域(PTP)。消息生产者将工作消息发送到一个JMS队列,也是从此,消息消费者接收工作消息进行处理。点对点域中,对生产者和消费者没有同时在线的要求。队列保存消息,直到消费者可以得到它们。当有可用消费者时,消息将发送给所用消费者,但不会有两个消费者接收到相同的消息。点对点域中,给定目的地的消息以循环的方式交付给队列消费者。
每个示例不仅关注不同的消息传递域,也使用不同的用例。此外,尽管本章后面每个例子的图绘咋看起来几乎一模一样,这两者之间的重要区别在于两个消息传递域。股票投资组合的例子为发布/订阅消息传递使用主题,而作业队列的例子为点对点消息使用队列。这些例子的来源是现成的,可以通过以下URL网上下载:http:// manning.com/snyder/activemq-in-action-examples-src.zip。
在本章中,首先我们将下载并安装Maven来编译和运行示例。这完成后,我们将回顾每个示例,演示各自的行为。完成这些练习之后,你将对例子有了一定了解并在本书中能够认出它们,进而理解它们是如何展示ActiveMQ特性的。