我有以下两个关于分布式消息传递系统的问题。主题和队列有何不同?如何在主题中维护订阅服务器。请分享任何有助于理解这些概念的文档或链接。谢谢
uubf1zoe1#
activemq网站有一个很好的解释。这里引用。主题在jms中,主题实现发布和订阅语义。当您发布一条消息时,它将发送给所有感兴趣的订阅者—因此零到多订阅者将收到消息的副本。只有在代理接收消息时具有活动订阅的订户才能获得消息的副本。队列jms队列实现负载均衡器语义。只有一个消费者会收到一条消息。如果在发送消息时没有可用的使用者,则将保留该消息,直到有可用的使用者可以处理该消息为止。如果消费者收到一条消息,但在关闭前没有确认,则该消息将被重新发送给另一个消费者。一个队列可以有多个使用者,消息负载在可用使用者之间平衡。所以队列在jms中实现了一个可靠的负载均衡器。2主题订阅者以及队列使用者都在代理中维护。但是,订阅客户端可以使订阅持久,并让代理在脱机时记住它。订户由客户机id标识。
1条答案
按热度按时间uubf1zoe1#
activemq网站有一个很好的解释。这里引用。
主题
在jms中,主题实现发布和订阅语义。当您发布一条消息时,它将发送给所有感兴趣的订阅者—因此零到多订阅者将收到消息的副本。只有在代理接收消息时具有活动订阅的订户才能获得消息的副本。
队列
jms队列实现负载均衡器语义。只有一个消费者会收到一条消息。如果在发送消息时没有可用的使用者,则将保留该消息,直到有可用的使用者可以处理该消息为止。如果消费者收到一条消息,但在关闭前没有确认,则该消息将被重新发送给另一个消费者。一个队列可以有多个使用者,消息负载在可用使用者之间平衡。所以队列在jms中实现了一个可靠的负载均衡器。
2主题订阅者以及队列使用者都在代理中维护。但是,订阅客户端可以使订阅持久,并让代理在脱机时记住它。订户由客户机id标识。