Spring boot AMQP ConvertSendReceive无法从Spring Boot 1.5移动到2
我正在将代码从Spring Boot 1.5.x迁移到2.0.3.0版本 它使用RabbitMQ使用Spring boot AMQP ConvertSendReceive无法从Spring Boot 1.5移动到2,spring-boot,rabbitmq,migration,Spring Boot,Rabbitmq,Migration,我正在将代码从Spring Boot 1.5.x迁移到2.0.3.0版本 它使用RabbitMQ使用convertSendAndReceive(…)方法对一组远程引擎进行RPC风格的调用 所有这些在1.5中都可以正常工作,但在迁移的代码中失败 日志最初显示 SimpleConsumer [queue=amq.rabbitmq.reply-to, consumerTag=amq.ctag-39fo5C1y6q8J9OevWDN3_A identity=6ffebba9] started 消息到
convertSendAndReceive(…)
方法对一组远程引擎进行RPC风格的调用
所有这些在1.5中都可以正常工作,但在迁移的代码中失败
日志最初显示
SimpleConsumer [queue=amq.rabbitmq.reply-to, consumerTag=amq.ctag-39fo5C1y6q8J9OevWDN3_A identity=6ffebba9] started
消息到达发动机并得到正确处理
但是,返回值为空,并记录以下内容
ERROR o.s.amqp.rabbit.core.RabbitTemplate No correlation header in reply
在1.5中,我们没有向调用者添加相关Id。我们现在需要还是有其他事情需要做
TIA。来自
对于verion 2.0之前的版本,RabbitTemplate为每个请求创建一个新的使用者,并在收到回复(或超时)时取消使用者。现在,模板使用DirectReplyToMessageListenerContainer,允许重用使用者;该模板仍然负责关联回复,因此不会有延迟回复到其他发件人的危险。如果要恢复到以前的行为,请将属性useDirectReplyToContainer(使用XML配置时直接回复容器)设置为false
比如说
rabbitTemplate.setUseDirectReplyToContainer(false);