学习是一种信仰。
分类: Java
2014-05-19 15:12:11
Java消息服务JMS
JMS(Java Message Service)是访问企业消息系统的标准API,S是用于和面向消息的中间件相互通信的应用程序接口。它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。它既支持点对点(point-to-point)的域,又支持发布/订阅 (publish/subscribe)类型的域。
一、什么是JMS?
? 是基于Java的消息中间件
(Message Oriented Middleware, MOM)。
? 是JavaEE的一部分。
? 用于在多个Java应用之间发送消息。
? 该机制使得多个分布式应用可以异步通信、
提高软件可靠性、降低耦合度。
二、JMS主要部分
1、JMS provider
– 实现了JMS接口的消息中间件。
– 主要JMS provider:
? Apache ActiveMQ
? Apache Qpid
? OpenJMS
? JORAM
? JBoss Messaging
? HornetQ
? ...
2、JMS 客户
– 创建、发送、接收消息的应用程序。
? JMS 生产者/发布者
– 创建并发布消息的JMS客户。
? JMS 消费者/订阅者
– 接收消息的JMS客户。
? JMS消息
– 在JMS客户之间传递的包含数据的对象。
3、JMS 队列 (Queue)
– 保存已发送或待接收消息的地方。
– 保存在队列中的消息并非先进先出,可以同时
对其中的消息进行处理。
– 队列保证每个消息只被处理一次。
4、JMS 主题 (Topic)
– 是一种消息发布机制。
– 可以将消息发布给多个消息订阅者。
三、JMS 模型
1、点到点模型(队列模型)
1.发送方将消息发送至指定队列。
2.消息保存在队列中,直至它们被接收或过期。
3.每个消息只有一个接收者。
4.发送和接收过程是异步的。
2、发布/订阅模型
1.发布者将消息发布至特定主题 (topic)。
2.发布者和订阅者彼此不知道对方。
3.存在多个(也可以没有)订阅者。