jms - 我们可以在发布/订阅消息传递中使用请求/回复模型吗?

标签 jms publish-subscribe

O'Reilly Media 的“Java Message Service”一书说:

use request/reply model in point-to-point messaging.



我们可以在 pub/sub 消息传递中使用消息选择器,因此编写请求/回复模型就像在回复主题上编写一个简单的选择器一样简单:
  • 发布者发布具有某些唯一属性的消息(例如 UUIDcorrelationID )
  • 订阅者以相同的 UUID 响应消息如 correlationID
  • 发布者(也是回复主题的订阅者)选择带有 UUID 的消息发送。

  • 这是错误的模式吗?

    最佳答案

    请求/回复消息模式通常用于调用由服务提供者托管的服务。根据服务请求,提供者将回复适当的响应。所以是一对一的。在这里请求者和响应者彼此认识。

    在发布/订阅的情况下,发布者和订阅者彼此不认识。可能有多个发布者发布一个主题,并且可能有数千个订阅者在收听该主题。因此,在收到发布后,如果订阅者使用主题回复请求,那么该发布可能会转到多个订阅者。这样的事情可能会淹没网络。

    在我看来,请求/回复模型必须用于 P2P 消息传递而不是 Pub/Sub。

    关于jms - 我们可以在发布/订阅消息传递中使用请求/回复模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11095155/

    相关文章:

    java - 有没有主动MQ的配置工具?

    node.js - Youtube PubSubHubBub 集成

    apache-camel - 将消息回滚到死信队列 - Apache Camel

    javascript - 在 RxJS 中,如何在没有主题的情况下直接链接 pub 子系统中的生产者和消费者?

    c# - 如何在纯 C# 中制作队列消息代理

    spring - 如何使用 Spring-websocket 拒绝基于用户权限的主题订阅

    performance - Redis/RabbitMQ - 发布/订阅 - 性能

    java - 在 JMS 中使用 JBoss 进行 JNDI 查找错误

    java - 将 Log4J JMSAppender 与 ActiveMQ 结合使用

    java - Apache Camel : DefaultMessage cannot be cast to JmsMessage