1

在 JMS 发布/订阅模式下,两个消费者订阅同一个主题。一个消费者正在运行,但是当生产者发送消息时另一个消费者宕机了,它仍然为没有运行的消费者保存消息?

谢谢

4

2 回答 2

1

如果您将持久消息传递和持久订阅主题结合使用,我相信您可以。

来自:http ://docs.oracle.com/javaee/5/tutorial/doc/bncdx.html

Pub/sub 消息传递具有以下特征。

每条消息可以有多个消费者。

发布者和订阅者具有时间依赖性。订阅主题的客户端只能消费客户端创建订阅后发布的消息,并且订阅者必须继续处于活动状态才能消费消息。

JMS API 通过允许订阅者创建持久订阅,在订阅者不活动时接收发送的消息,从而在一定程度上放宽了这种时间依赖性。持久订阅提供了队列的灵活性和可靠性,但仍允许客户端向多个收件人发送消息。有关持久订阅的更多信息,请参阅创建持久订阅。

于 2013-03-26T02:59:51.913 回答
0

这是我们使用的地方javax.jms.Session.createDurableSubscriber

JMS 提供者保留此持久订阅的记录,并确保保留来自主题发布者的所有消息,直到它们被此持久订阅者确认或它们已过期。

于 2013-03-26T05:46:58.877 回答