从主题的开头接收消息

时间:2012-09-04 20:54:38

标签: java jms messaging

所以我想知道一个问题。考虑发布者在上午10:00创建主题并立即开始向主题发布消息。它通知消费者创建主题,然后他们在上午10:01订阅该主题。这些消费者将不会在上午10:00至10:01之间收到发布者发送的消息。因此,如果消息提供程序发现此主题没有活动订阅者接收任何消息,则应立即丢弃这些消息。我们是否可以提供一种订阅机制,消费者可以通过该机制指定他们希望从哪个点接收消息(例如,从主题的开头或太平洋标准时间2011年12月25日上午10:00等)。

1 个答案:

答案 0 :(得分:1)

在发布/订阅消息传递模型中,发布者不会通知向订阅者创建主题。

发布者和订阅者通过该主题松散耦合。因此,发布商不会知道是否有任何订阅者。如果该主题没有订阅者,则消息传递提供程序会丢弃有关主题的发布。如果没有用于发布的接收者,一些消息传递提供者会通知发布者。这样出版商就可以决定是否继续发布。

订阅者将从创建订阅时开始发布。有两种类型的订阅,持久和非持久。非持久订阅是指只要订阅者处于活动状态就将订阅发布给订阅者的订阅。持久订阅即使订阅者不活跃也会提供发布。

有保留发布的概念,消息提供商保留一个最新的出版物,并提供给迟到的订阅者。