【问题标题】:JMS, how to implement request-reply pattern using two message brokersJMS,如何使用两个消息代理实现请求-回复模式
【发布时间】:2018-05-14 15:06:58
【问题描述】:

是否可以使用两个 JMS 消息代理实例来实现异步请求-回复模式?这样服务 A 向队列 A 发送消息,并从队列 B(不同的代理实例)获取响应?

JMS API(或 Apache Camel)是否提供了一些完整的机制来通过相关标识符透明地实现这一点?需要什么配置?

额外问题:

为了进一步洗牌,我想对队列进行聚类。这可以按照规范透明地实现吗?基本上,我有多个 Spring 启动应用程序(服务),其中 ActiveMQ 代理嵌入在 Spring 上下文中。每个代理都充当服务的单向通道,并且每个服务除了对特定消息的响应之外,还向其自己的代理中的其他服务提供响应。现在,我想运行每个服务的多个实例并保留消息之间的相关性。

【问题讨论】:

    标签: apache-camel jms integration message-queue messaging


    【解决方案1】:

    由于您的请求发送者 (A) 和响应接收者 (B) 是两个不同的服务 - 您有责任在某处存储原始请求的上下文。

    可能最简单的方法是为此目的使用专用队列(我们称之为 echo)。

    (A) 可以存储具有某些特定相关 Id 的原始请求消息,例如从发送的请求的消息 Id 中获取。应该为响应消息设置相同的相关 ID,这将由 (B) 获取。因此,一旦 (B) 收到响应,它就能够使用具有相同相关 ID 的选择器从回显队列中获取原始请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-22
      • 2021-11-01
      • 2020-10-11
      • 2011-05-21
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 2012-02-22
      相关资源
      最近更新 更多