PointToPoint与JMS中的发布/订阅模型?

时间:2012-11-14 11:12:09

标签: java jms publish-subscribe mom

我是JMS的新手。我已经开始使用hello world,我将在主题上发布来自java应用程序的消息 从客户端(node.js javascript)听它。我已经通过了http://en.wikipedia.org/wiki/Java_Message_Service。 现在我有一些疑问是基于我的理论理论和上面的链接建议的内容?

根据我的理解,Point to Point是队列实现,其中最多可以有一个消费者在队列上订阅并且可以 只被消费。生产者和消费者都不知道彼此。在我的案例Apache主动MQ中,Queue托管在消息代理上。 生成器可以在发布消息之前创建队列(或者可以提前从控制台创建)。

在发布/订阅模型的情况下,它几乎与PointToPoint相同,除了我们使用Topic而不是queue的事实。在这个模型中,可以有 超过主题消费者。消息发布后,将通知所有订阅者。现在,如果有任何订户, 发送已发布消息的确认消息,消息将被消费,新订户将不再可用?

1 个答案:

答案 0 :(得分:23)

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

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

我建议您继续阅读,

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