一. 消息的传递模型:
JMS支持两种消息传递模型:
1) 点对点(point to point):
涉及到的概念:
a 消息队列(queue)
b 发送者(sender)
c 接受者(receiver)
点对点模式的特点:
a 每个消息只有一个消费者,消息一旦被消费,就不再在消息队列中。
b 发送者和接受者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接受者有没有正在运行,它不会影响到消息被发送到队列。
c 接受者在成功接收消息之后需向队列应答成功。
d 在此模型中,消息不是主动推送给客户端的,而是要由客户端从队列中请求获得。
何时使用:
p2p消息模型是在点对点之间传递消息时使用,如果应用程序开发者希望每一条消息都能够被处理,那么应该使用p2p消息模型。与pub/sub消息模型不同,p2p消息总是能够传送到指定的位置。(专线意味着稳定)
类似于打电话,二者独占一条线路!
2) 发布/订阅(public/subscribe)
涉及到的概念:
a 主题(topic)
b 发布者(publisher)
c 订阅者(subscriber)
发布订阅模式的特点:
a 一条消息可以传递给多个接收方,此模型中,消息会自动广播,消费者无需主动请求来获得新的信息。
b 发布者和订阅者有时间上的依赖性,针对某个topic的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。
c 为了缓和这样严格的时间相关性,jms允许订阅者创建一个可持久化的订阅,这样,即使订阅者没有运行,它也能接受到发布者的消息。
何时使用:
pub/sub模型在一对多的消息广播时使用。如果一定程度的消息传递不可靠性可以被接受的话,那么应用程序开发者也可以使用pub/sub消息模型。换句话说,它适用于所有的消息消费程序并不要求能够接收到所有的消息。
类似于多个人订阅了一份报纸!
二. 企业消息系统的好处:
1. 提供消息灵活性
2.松散耦合
3. 异步性