交易系统开标室用到了消息队列,activemq。在部署项目的时候也多次接触启动。今天就来认识下。
JMS java message servcies
JMS即
Java消息服务
(Java Message Service)应用程序接口,是一个
Java平台
中关于面向
消息中间件
(MOM)的
API
,用于在两个应用程序之间,或
分布式系统
中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
http://localhost:8161/admin/
admin admin
2. JMS体系结构
描述如下:
- JMS提供者(JMS的实现者,比如activemq jbossmq等)
- JMS客户(使用提供者发送消息的程序或对象,例如在12306中,负责发送一条购票消息到处理队列中,用来解决购票高峰问题,那么,发送消息到队列的程序和从队列获取消息的程序都叫做客户)
- JMS生产者,JMS消费者(生产者及负责创建并发送消息的客户,消费者是负责接收并处理消息的客户)
- JMS消息(在JMS客户之间传递数据的对象)
- JMS队列(一个容纳那些被发送的等待阅读的消息的区域)
- JMS主题(一种支持发送消息给多个订阅者的机制)
3. JMS对象模型
- 连接工厂(connectionfactory)客户端使用JNDI查找连接工厂,然后利用连接工厂创建一个JMS连接。
- JMS连接 表示JMS客户端和服务器端之间的一个活动的连接,是由客户端通过调用连接工厂的方法建立的。
- JMS会话 session 标识JMS客户端和服务端的会话状态。会话建立在JMS连接上,标识客户与服务器之间的一个会话进程。
- JMS目的 Destinatio 又称为消息队列,是实际的消息源
- 生产者和消费者
- 消息类型,分为队列类型(优先先进先出)以及订阅类型
练习1
(
点对点(point to point, queue)
):
用监听的方法:
练习2(
发布/订阅(publish/subscribe,topic)。
)
注意先订阅后消费
两种消息模型的区别:
JMS规范目前支持两种消息模型:点对点(point to point, queue)和发布/订阅(publish/subscribe,topic)。
点对点:
消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。这里要注意:
消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。
Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。
发布/订阅
消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。
另附几篇网友的帖子:
2.
点击打开链接http://www.cnblogs.com/super-d2/p/4249768.html