JMS中的点对点模型与发布/订阅模型



我是JMS的新手。我从";你好世界";我在Topic和从客户端侦听(node.js Javascript)。我已经浏览了这个维基百科条目,但基于我之前的理论理解,我有一些问题。

根据我的理解,点对点是队列实现,其中最多可以有一个消费者在队列上订阅,并且可以只会被它消耗掉。生产者和消费者都不了解对方。队列托管在消息代理上,在我的例子中是ApacheActiveMQ。队列可以由生产者在发布消息之前创建(也可以提前从控制台创建)。

在发布/订阅模型的情况下,除了使用Topic而不是队列之外,它几乎与点对点相同。在这个模型中,可以有更多的消费者参与这个主题。消息发布后,将通知所有订阅者。现在,如果任何订阅者发送已发布消息的确认,消息将被视为已消费,并且新订阅者将不再可用?

点对点意味着消息通过队列从一个应用程序(生产者或发送者)发送到另一个应用程序(消费者/接收者)。一个队列上可能有多个使用者在侦听,但其中只有一个会得到消息。因此,它是点对点或一对一。

另一方面,发布/订阅是另一种消息传递模型,其中消息(或通常称为发布)通过一个主题发送给多个消费者(或订阅者)。主题是发布者和订阅者之间的链接。订阅者可以确认也可以不确认发布的消息。像JMS这样的实现向消息传递提供者确认消息,但不向消息的发送者确认消息。所有订户都将收到持久和非持久出版物。同一主题的任何新订阅者都不会获得该出版物,除非它是"保留"出版物。

我建议您进一步阅读,

  1. 持久订阅
  2. 非持久订阅
  3. 保留出版物

相关内容

  • 没有找到相关文章

最新更新