【问题标题】:Example of RabbitMQ with RPC in Spring Integration在 Spring 集成中使用 RPC 的 RabbitMQ 示例
【发布时间】:2018-01-26 09:06:46
【问题描述】:

在搜索了实现它的不同方法后,我卡住了。 我正在寻找的是使用 Spring Integration 实现这个示例 (https://www.rabbitmq.com/tutorials/tutorial-six-spring-amqp.html)。 我发现了这个有趣的帖子(Spring integration with Rabbit AMQP for "Client Sends Message -> Server Receives & returns msg on return queue --> Client get correlated msg"),但没有帮助我解决我需要的问题。 我的案例是一个系统,其中客户端调用“convertSendAndReceive”方法,服务器(基于 Spring 集成)将响应。

谢谢

【问题讨论】:

  • 问题是什么?
  • 主要知道是否可以使用 Spring Integration 和 RabbitMQ 和 RPC 来实现它。现在我有一个入站通道适配器正在工作,但我不确定使用调用方法“convertSendAndReceive”的哪些实现可以正常工作

标签: spring rabbitmq spring-integration spring-rabbit spring-integration-amqp


【解决方案1】:

根据您的解释,您需要的是客户端的出站网关和服务器端的入站网关。

Spring Integration AMQP 支持通过内置关联功能为您提供这些实现:https://docs.spring.io/spring-integration/docs/5.0.0.RELEASE/reference/html/amqp.html

【讨论】:

  • 抱歉耽搁了,谢谢你的回答。我已经在服务器中实现了入站网关,但是当我尝试实现 ouputChannel 以从服务器发送响应时,我不知道是否必须将其发送到同一个队列或另一个不同的队列。事情是请原谅延迟,谢谢您的回答。我已经在服务器中实现了入站网关,但是当我尝试实现 ouputChannel 以从服务器发送响应时,我不知道是否必须将其发送到同一个队列或另一个不同的队列。事情是 RPC 自动实现响应队列,有什么选择吗?
  • 这正是temporary queue默认回复所做的。或者您可以在RabbitTemplate 上配置setReplyAddress()。入站网关绝对应该依赖请求消息提供的ReplyTo 标头。在服务器上,您应该只依赖 replyChannel 标头,入站网关将为您执行关联和回复生成逻辑。
  • 太好了,我没有观察到 setReplyAddress() 属性。
  • 太好了,我没有观察到 setReplyAddress() 属性。所以对于replyChannel我客人我将不得不实现一个AmqpOutboundEndpoint重定向回响应,如:'@ServiceActivator(inputChannel =“configurationChannel”)public AmqpOutboundEndpoint amqpOutbound(AmqpTemplate amqpTemplate)'在setExchangeName()中它会自动填充回复地址我明白,对吗?
猜你喜欢
  • 2012-05-08
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多