【问题标题】:Spring-AMQP and Direct Reply-ToSpring-AMQP 和直接回复
【发布时间】:2014-12-04 15:00:12
【问题描述】:

我发现这里列出了这个 RabbitMQ“扩展”:http://www.rabbitmq.com/direct-reply-to.html,我用amq.rabbitmq.reply-to 设置了RabbitTemplate 的“replyQueue”我尝试了一个已经函数的 RPC 调用,它已经运行了,但是现在它只是超时。

感谢任何帮助!

【问题讨论】:

  • 你找到解决办法了吗?

标签: spring rabbitmq amqp spring-amqp


【解决方案1】:

使用固定回复队列(无论是用户指定的还是amq.rabbitmq.reply-to)时,您必须配置<reply-listener/> - 请参阅the Spring AMQP documentation。对于amq.rabbitmq.reply-to,您应该将回复容器的确认设置为NONE(在 RabbitMQ 中是 no-ack)。

更正:RabbitTemplate 目前不支持直接回复sendAndReceive() 操作;但是,您可以指定一个固定的回复队列(带有回复侦听器)。或者您可以使用 rabbitTemplate.execute()ChannelCallback 来使用来自该“队列”的回复(并发布)。

如果您想跟踪它,我已经创建了一个JIRA issue

1.4.1 及以上版本现在支持直接回复。

【讨论】:

  • 根据link:“当模板不使用固定的replyQueue(或正在使用Direct reply-to - 请参阅第3.7.1节,“RabbitMQ Direct reply-to”)时,侦听器容器不需要。”此外,JIRA 问题已经结束,但是我遇到了与主题启动者相同的问题 - 客户端未收到回复。
  • 请开始一个新问题,显示配置,并提供版本信息。
  • 一个常见的错误是错误地输入了直接回复名称(例如amq.rabbitmq.reply.to 而不是amq.rabbitmq.reply-to)。
  • 我已经通过直接从官方网站更新我的 rabbitmq 服务器解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多