M S*_*ach 13 java jms mom publish-subscribe
我是JMS的新手.我已经开始使用hello world,我将从主题上的java应用程序发布消息并从客户端(node.js javascript)监听它.我已经通过http://en.wikipedia.org/wiki/Java_Message_Service.现在我有一些疑问,基于我的先前理论理解和上面链接建议的内容?
根据我的理解,点对点是队列实现,其中最多只有一个消费者在队列上订阅并且只能被消费者使用.生产者和消费者都不知道彼此.在我的案例Apache主动MQ中,Queue托管在消息代理上.生成器可以在发布消息之前创建队列(或者可以事先从控制台创建).
在发布/订阅模型的情况下,它几乎与PointToPoint相同,除了我们使用Topic而不是queue的事实.在这个模型中,Topic上可以有更多的消费者.消息发布后,将通知所有订阅者.现在,如果任何订户发送已发布消息的确认消息,消息将被视为已消耗,并且新用户将无法再使用该消息?
Sha*_*shi 26
点对点意味着消息通过队列从一个应用程序(生产者或发送者)发送到另一个应用程序(消费者/接收者).可以有多个消费者在队列中侦听,但只有其中一个消费者会收到消息.因此它是点对点或一对一.
另一方面,发布/订阅是另一种消息传递模型,其中通过主题将消息(或通常称为其的发布)发送给多个消费者(或订户).主题是发布者和订阅者之间的链接.订户可能会也可能不会确认已发布的消息.像JMS这样的实现确认消息提供者的消息,而不是消息的发送者.所有订户都将收到出版物,耐用且不耐用.除非是保留的出版物,否则同一主题的任何新订阅者都不会获得该出版物.
我建议你继续阅读,
- 持久的订阅
- 非持久订阅
- 保留出版物