1.JMS
Java Message Service,提供API,供两个应用程序或者分布式应用之间异步通信,以传送消息。
2.相关概念
提供者:实现JMS规范的消息中间件服务器
客户端:发送或接收消息的应用程序,我们主要开发这个。包括 生产者/发布者客户端 及 消费者/订阅者客户端。
生产者/发布者:创建并发送消息的客户端
消费者/订阅者:接收并处理消息的客户端
消息:应用程序之间传递的数据内容
消息模式:在客户端之间传递消息的方式,JMS中定义了队列和主题两种模式。
3.了解消息模式
3.1 队列模式
客户端:生产者、消费者
队列中的消息只能被一个消费者消费
消费者可以随时消费队列中的消息(应先启动消费者,再启动生产者)
3.2 主题模型
客户端:发布者、订阅者
主题中的消息被所有消费者订阅
消费者不能消费订阅之前就发送到主题中的消息(应先启动订阅者客户端,再启动发布者客户端)
4. JMS编码接口
ConnectionFactory 创建连接到消息中间件的连接工厂
Connection 代表应用程序和消息服务器之间的通信链路
Destination 消息发布和接收的地点,选项为队列或主题
Session 一个发送或接收消息的线程
MessageConsumer 由会话创建。用于接收消息。
MessageProduer 由会话创建。用于发送消息。
Message 在生产者和消费者之间传递的消息对象。由消息头、一组消息属性、一个消息体组成。
5.安装activeMQ
a. 下载
b. 解压
c. 添加环境变量到Path
d. 设置为服务
e. 手动启动(下次开机服务会自动运行)
f. 浏览器访问 http://127.0.0.1:8161 ,默认账号密码为 admin / admin
6.代码
注1:开发环境为windows + JDK8 + eclipse Mars2 + Maven3.3.9
注2:两种模式都是先启动消费者,后启动提供者
注3:消费者应保持连接,以等待提供者生产数据,再行消费
7.小结
(1)activeMQ 是JMS规范的一种优秀实现。
(2)activeMQ 是消息中间件。消息中间件相当于中介,是一个信息的「中转站」。
(3)activeMQ 有两种模式:队列(点对点)模式 和 主题(订阅)模式。两种模式最大的区别是队列模式『瓜分』消息,主题模式『均沾』消息。