我主要在RPC模式下使用RabbitMq,但我也想将请求和响应消息都复制到另一个队列。
最后,我要实现的目标是,外部消费者可以通过听队列来查看所有流量,我们称之为“记录队列”。
复制传入消息是可以的,我只需要使用扇出交换或将我的日志记录队列绑定到使用的交换,交换路由就使用与RPC调用相同的路由密钥。
但是我无法设法“扇出”通过直接回复功能发送的消息。
到目前为止,我知道响应消息已通过生成的routing_key以amqp.rabbitmq.reply-to.genicName的形式发送到默认直接交换,并且由于默认交换是不可触及的,因此我无法重复这些请求消息。
您知道吗?
我有一个我不希望避免的解决方案:让客户端将从答复接收到的响应重新发送到“日志记录队列”。
但是这意味着我的客户负责此“日志记录”功能,而我宁愿不负责。
顺便说一下,即使我认为这不相关,因为它可能是RabbitMq服务器配置问题,我还是使用Spring-AMQP客户端
我主要在RPC模式下使用RabbitMq,但我也想将请求和响应消息都复制到另一个队列。最后,我要实现的是外部消费者的可能性...
您无法使用固定的回复来做到这一点,因为没有真正的队列/交换。