基于主题的分布式消息传递如何维护订户

时间:2015-10-08 11:15:04

标签: activemq apache-kafka distributed-computing mqtt jms-topic

我有两个与分布式邮件系统有关的问题。

  1. 主题与队列有何不同?
  2. 如果是主题,订阅者是如何维护的。
  3. 请分享任何有助于理解这些概念的文档或链接。 感谢

1 个答案:

答案 0 :(得分:1)

  1. ActiveMQ website有一个很好的解释。引用此处。
  2.   

    主题

         

    在JMS中,主题实现了发布和订阅语义。当您发布消息时,它会发送给所有感兴趣的订阅者 - 因此零到多订阅者将收到该消息的副本。只有在经纪人收到消息时拥有有效订阅的订阅者才能获得该消息的副本。

         

    队列

         

    JMS队列实现负载均衡器语义。一个消费者将收到一条消息。如果在发送消息时没有可用的消费者,则将保留消费者,直到有消费者可以处理消息为止。如果消费者收到消息并且在关闭之前没有确认消息,那么该消息将被重新传递给另一个消费者。队列可以让许多消费者在可用消费者之间对消息进行负载平衡。   因此,Queues在JMS中实现了可靠的负载均衡器。

    2。 主题订阅者以及队列使用者都在代理中维护。但是,订阅客户端可以使订阅持久,让代理在脱机时记住它。订户由客户端ID标识。