所以我的情况如下:
但是当制作人在收到所有回复之前失败时,以后就无法获得回复。所有待处理的回复都会产生警告"没有待处理的回复 - 可能超时:"。我完全理解为什么当我查看代码时会发生这种情况。 是否无法持续存储传入回复消息的信息?我做错了什么或是不可能用spring-amqp覆盖我的用例?
所以问题是在重启生产者之后从固定回复队列接收回复的最佳方式是什么。
答案 0 :(得分:0)
目前暂不支持持续待处理的回复信息;通常使用请求/回复方案,如果请求者死亡,则回复没有意义。但我可以看到有些情况可能并非如此。
您可以简单地使用RabbitTemplate
send()
而不是使用异步模板,并使用配置为处理和路由回复的侦听器容器。
您需要执行自己的请求/回复关联(例如,使用correlationId
标头),在某处保留待处理的回复关联。
Spring Integration provides a Metadatastore
abstraction有几个可能适合的实现。