在阅读“Java Message Service”一书时,我遇到了一条我无法理解的底线:
pub/sub和p2p模型的另一个主要区别是,对于pub/ sub模型,消息选择器是在消息被复制到每个订阅服务器时应用的;而对于p2p模型,消息选择器是在消息被添加到队列之后应用的。
我理解pub/sub,它说:在代理向订阅者发送消息之前,它应用消息选择器,但是对于点对点(队列),假设有2个接收者注册了消息,而不是当它应用消息选择器时?
发布于 2013-12-01 03:38:40
pub/sub和p2p模型的另一个主要区别是,对于pub/ sub模型,当消息被复制到每个订阅者时,就会应用消息选择器。
由于pub/sub向所有订阅者发送一条消息,如果订阅服务器上的选择器与消息不匹配,则该消息可能会被丢弃在subcriber处。代理不关心哪些订阅者根据选择器接收消息,因为pub/sub通过设计将消息传递给所有订阅者。根据这段摘录,这是我的看法。
...whereas具有p2p模型,消息选择器在消息被添加到队列后应用。
对于队列,代理必须保证对任何给定消息的“准确-一次”传递,因此选择首先发生在代理端。假设有3个消费者在同一个队列上监听,而且他们都有相同的选择器。在这种情况下,代理选择一个使用者,并只将消息传递给该使用者。如果没有任何使用者拥有与消息匹配的选择器,代理将保留该消息,直到它找到使用者为止,或者直到消息过期为止。
https://stackoverflow.com/questions/20302409
复制相似问题