ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
JMS简介:JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。
ActiveMQ的传递方式分为:P2P模式、PUB_SUB模式和 request-response (request-response的通信方式很常见,但是不是默认提供的一种模式)
按照JMS的规范,我们首先需要获得一个JMS connection factory.,通过这个connection factory来创建connection.在这个基础之上我们再创建session, destination,
producer和consumer。因此主要的几个步骤如下:
1. 获得JMS connection factory. 通过我们提供特定环境的连接信息来构造factory。
2. 利用factory构造JMS connection
3. 启动connection
4. 通过connection创建JMS session.
5. 指定JMS destination.
6. 创建JMS producer或者创建JMS message并提供destination.
7. 创建JMS consumer或注册JMS message listener.
8. 发送和接收JMS message.
9. 关闭所有JMS资源,包括connection, session, producer, consumer等。
publish-subscribe
发布订阅模式有点类似于我们日常生活中订阅报纸
publisher
publisher是属于发布信息的一方,它通过定义一个或者多个topic,然后给这些topic发送消息。
consumer
Consumer的代码也很类似,具体的步骤无非就是1.初始化资源。 2. 接收消息。 3. 必要的时候关闭资源。
p2p
p2p的过程则理解起来更加简单。它好比是两个人打电话,这两个人是独享这一条通信链路的。
pub-sub和p2p模式的具体实现步骤的话,我们会发现他们基本的处理流程都是类似的,除了在pub-sub中要通过createTopic来设置topic,而在p2p中要通过createQueue来创建通信队列。