The ActiveMQ in Action examples
第三章 ActiveMQ 实例
This chapter covers
Introduction to the use case for each of the book examples
Use of Maven for compiling and running the examples
How to use the example applications with ActiveMQ
本章内容包括:
介绍本书中所有实例的用例
使用Maven编译和运行书中实例
如何使用ActiveMQ的示例应用程序
ActiveMQ provides all the features from the JMS specification and adds many more
powerful features on top of that. This is depicted in figure 3.1 and these features
will be discussed through the rest of the book. In order to best demonstrate these
features, two new examples have been created that are modeled after real business
domains. Compared to the example that’s part of the ActiveMQ distribution, these
examples lend themselves to demonstrating the features in ActiveMQ in a more
complete and easy manner.
ActiveMQ提供JMS规范中的所有功能,同时还具有很多规范之外的强大功能,如图3.1所示.这些功能将在本书
的剩余部分中讨论.为了说明这些功能,书中创建了两个基于真实业务场景的实例.
相对于ActiveMQ版本中的自带的实例来说,书中的两个实例更能够用一种简单的方式完整的展示ActiveMQ的功能.
One of the examples is based on a stock portfolio and the other is based on a
job queue. These two examples are more extensive than the examples that come
with ActiveMQ. The use case for each of these examples is introduced briefly, followed
by a deeper discussion of how to use them. You can refer back to this chapter
at any time throughout the book if you need a refresher on the examples.
两个实例一个是基于股票,另一个是基于任务队列的.这两个实例比ActiveMQ自带的实例拥有更广泛的参考性.
在两个实例用例简洁的介绍之后,是关于如何深入使用用例的深入介绍.
你可以在阅读本书的过程中适时的回顾本章以复习这两个实例.
The stock portfolio demonstrates the publish/subscribe messaging domain.
Publishers broadcast stock price messages to many interested subscribers.
Messages are published to a JMS destination called a topic and clients with
active subscriptions receive messages. Using this model, the broker delivers messages to each
subscriber without the need to poll for messages.
Every active subscriber receives its own copy of each message published to the topic.
Publishers are decoupled from subscribers via the topic. Unless durable subscriptions are
used, subscribers must be active in order to receive messages sent by publishers to the topic.
A copy of each message on a given destination is delivered to all topic subscribers using the pub/sub domain.
stock portfolio这个实例介绍了发布/订阅消息的使用.发布者广播股票价格消息给许多感兴趣的订阅者.
消息被发布到一个被称为主题(topic)JMS目的地(destination),这样客户端的活跃的订阅者将会收到消息.
使用这个模型,代理分发消息给每一个订阅者不需要推送消息.每一个活跃的消息订阅者将收到属于他们自己
已被发布得到主题(topic)的消息拷贝.消息发布者和接收者通过主题实现解耦.除非持久订阅,否则每一个消息
接收者必须是活动的,以便接受消息发布者发送给主题的消息.通过使用发布/订阅模型,
每一个带有指定目的地的消息拷贝会被分发给所有的主题订阅者.
The job queue demonstrates the point-to-point (PTP) messaging domain. Message
producers send job messages to a JMS queue, from which message consumers receive
the job messages for processing. There’s no timing requirement for the producers
and consumers to be online at the same time with the point-to-point domain. The
queue holds messages until consumers are available to receive them. As consumers
are available, messages are delivered to all consumers, but no two consumers receive
the same message. Messages on a given destination are delivered to queue consumers
in a round-robin fashion using the PTP domain.
job queue这个实例介绍了点对点消息的使用(PTP).消息生产者发送job消息给JMS消息队列,消息
消费者从消息队列接收消息然后做相应的处理.使用点对点消息模式,消息生产者和消费者不需要同时在线.
消息队列将保存消息直到消息消费者成功的接收了消息.在消息消费者可用时,消息被分发给所有消费者,
但是两个消费者不会收到同一个消息.点对点消息发送模型,将带有指定目的地的消息通过轮询的方式分发给
队列中的消费者.
Not only is each example focused on a different messaging domain, but each is
also focused on a separate use case. Additionally, although the diagrams depicted later
in this chapter for each example look nearly the same at first glance, the important
difference between the two lies in the two messaging domains. The stock portfolio
example uses topics for pub/sub messaging, whereas the job queue example uses
queues for point-to-point messaging. The source for these examples is readily available
and can be downloaded from the Manning website via the following URL: http://
manning.com/snyder/activemq-in-action-examples-src.zip.
两个实例不仅仅使用了不同的消息发送模型,而且每一个实例各自关注独立的用例.另外,
尽管如本章稍后所示,两个例子的示意图乍看起来很相似,但是两个实例使用的消息
发送模型是不同的.stock portfolio实例使用主题实现消息的发布/订阅,而job queue的例子
使用消息队列实现点对点的消息发送和接收.这两个例子的源代码可以从下面的链接下载:
http://manning.com/snyder/activemq-in-action-examples-src.zip.
(译注:貌似现在这个连接已失效,可以同这个页面http://manning.com/snyder/,在Downloads部分下载)
In this chapter, first we’ll download Maven and install it in order to compile and
run the examples. After this is complete, we’ll review each example and demonstrate
how each one should behave. After the completion of these exercises, you’ll be familiar
enough with the examples to recognize them throughout the book and see how
they’re used to demonstrate the features in ActiveMQ.
本章中,我们首先下载并安装Maven,以便编译和运行实例代码.之后,我们将复习每一个实例并说明
每一个实例的应当如何运行.完成这些后,你对这两个实例已经很熟悉了,可以很清楚的看到在本书
中这两个实例时如何说明ActiveMQ的各种功能的.
相关推荐
6. **运行实例**:确保ActiveMQ服务器正在运行,然后启动你的Spring应用。调用`sendMessage()`方法,消息将被发送到指定的队列。 以上就是ActiveMQ与Spring整合的基本流程。在实际项目中,你可能还需要处理事务管理...
4. lib目录:包含所有依赖的第三方库。 5. examples目录:提供示例代码和配置,帮助用户了解如何使用ActiveMQ。 6. docs目录:包含API文档和其他技术文档。 在部署和使用ActiveMQ时,用户需要根据需求配置activemq....
Apache ActiveMQ是开源的、基于Java消息服务(JMS)的应用服务器,它是Apache软件...通过学习和实践这些知识点,你将能够成功地部署和管理一个ActiveMQ实例,从而利用其强大的消息传递能力来提升你的应用性能和可靠性。
- 启动第一个节点:在命令行中,进入ActiveMQ目录并执行`bin\activemq start`命令。 - 启动后续节点:在其他实例中,修改`conf/jetty.xml`以使用不同的端口,避免冲突,然后同样启动。 5. **验证集群** - 使用...
3. **ActiveMQ与Tomcat整合.doc**: 这份文档详细解释了如何将ActiveMQ集成到Tomcat服务器中,这对于构建基于Web的应用程序尤其有用,因为它可以利用消息队列提高系统的可伸缩性和可靠性。 4. **ActiveMQ相关资料....
3. 创建Connection:通过ConnectionFactory建立与ActiveMQ服务器的连接。 4. 创建Session:在Connection上创建一个或多个Session,用于管理和发送/接收消息。 5. 创建Destination:根据需要是Queue还是Topic,创建...
在JDBC Master/Slave模式下,ActiveMQ通过使用外部数据库存储持久消息,从而可以在多个ActiveMQ实例之间同步消息状态,保证数据的一致性。这种模式下,通常会有一个Master节点和一个或多个Slave节点。Master节点负责...
3. **网络连接**:多个Broker通过网络连接器相互连接,形成一个集群,共同分担消息处理工作,同时提供容错能力。 配置网络连接器通常在`activemq.xml`配置文件的`<broker>`节点内进行。例如,下面的配置创建了一个...
`lib`目录通常存放项目依赖的外部库,包括ActiveMQ的JAR文件和其他可能的第三方库。 在实际应用中,你可能需要根据业务需求配置更多选项,比如添加持久化存储、设置消息策略、安全认证等。通过调整`BrokerService`...
8. **管理工具**:包含一个基于Web的管理控制台,方便监控和管理ActiveMQ实例。 9. **广泛的API**:提供Java、C++、Python、C#等多种语言的API,便于开发人员集成。 10. **可扩展性**:通过插件机制,可以轻松地...
本教程将引导你迈入ActiveMQ学习之旅的第一步,帮助你理解其核心概念和基本操作。 1. **ActiveMQ简介** Apache ActiveMQ是一个完全支持JMS 1.1和JMS 2.0规范的消息代理,它允许应用程序通过发送和接收消息来解耦...
要配置 JDBC Master Slave 模式,我们需要在每个 ActiveMQ 实例的配置文件(activemq.xml)中添加数据源,这些数据源都指向同一个数据库。例如: ```xml ${activemq.base}/data" dataSource="#mysql-ds" ...
假设我们有三个服务器:server1、server2和server3。server1部署用户管理模块,server2部署RPC测试模块,server3部署消息队列服务器。每当server1执行一个注册admin的操作时,同时将日志log信息写入server3,之后...
- **监控工具**:使用管理控制台或第三方工具来监控ActiveMQ的状态。 - **日志记录**:配置日志记录策略,以便于调试和审计。 #### 总结 《ActiveMQ In Action》这本书全面介绍了消息中间件的基础知识和ActiveMQ...
3. **masterslave**:定义主从关系,第一个 URL 为 master,其余为 slaves。 **网络连接器的配置参数** 网络连接器支持一系列参数来调整其行为,例如: - `initialReconnectDelay` 和 `maxReconnectDelay` 控制重连...
**ActiveMQ监控**:ActiveMQ自带的管理界面有限,但可以通过第三方工具如HawtIO进行监控。HawtIO是一个轻量级的Web管理工具,可以实时查看ActiveMQ的状态、JMX信息等。配置HawtIO需要下载应用,放入ActiveMQ的...
第三章:企业人事管理系统 人事管理系统通常包含员工信息管理、考勤记录、薪资计算等功能。这将涉及到Java集合框架的使用,如List、Set、Map等,以及数据结构的设计。同时,可能会用到Spring MVC框架进行前后端数据...
1. **依赖管理**:由于 `activemq-web-3.2.1.jar` 是一个库文件,因此在使用它之前,需要确保你的项目已经正确引入了所有必要的依赖,包括其他 ActiveMQ 相关的 JAR 文件以及可能的第三方库。这通常通过 Maven 或 ...
用PHP来操作ActiveMQ,我们可以借助一个第三方扩展。 下载: composer require fusesource/stomp-php:2.0.* 然后新建test.php: <?php require __DIR__.'/vendor/autoload.php'; //引入自动加载的文件 $connect...