JMS


Java消息服务应用程序结构支持两种模型:

1.点对点模型(基于队列)

每个消息只能有一个消费者。
消息的生产者和消费者之间没有时间上的相关性.可以由多个发送者,但只能被一个消费者消费。
1)一个消息只能被一个接受者接受一次
2)生产者把消息发送到队列中(Queue),这个队列可以理解为电视机频道(channel)
3)在这个消息中间件上有多个这样的channel
4)接受者无需订阅,当接受者未接受到消息时就会处于阻塞状态

2. 发布者/订阅者模型(基于主题的)

每个消息可以有多个消费者。
生产者和消费者之间有时间上的相关性。
订阅一个主题的消费者只能消费自它订阅之后发布的消息.
1)允许多个接受者,类似于广播的方式
2)生产者将消息发送到主题上(Topic)
3)接受者必须先订阅
注:
持久化订阅者:特殊的消费者,告诉主题,我一直订阅着,即使网络断开,消息服务器也记住所有持久化订阅者,如果有新消息,也会知道必定有人回来消费。

JMS