RabbitMQ Channel 复用(SimpleMessageContainer)

RabbitMQ Channel reuse (SimpleMessageContainer)

我的 spring 引导应用程序的功能是侦听 rabbitmq 队列上的消息,在 onMessage 中进行一些处理,然后将消息发布到另一个 rabbitmq 队列上。我们正在使用 spring-rabbit (1.7.2.RELEASE)。我们已经使用 SimpleMessageListenerContainer 配置了监听器。

我的问题是我可以使用我正在阅读消息的同一频道发布消息。 spring-rabbit 是否提供对监听器使用的通道的访问?以便可以重复使用同一个频道进行发布?

谢谢, 思密达

如果您使用事务(侦听器容器),事务RabbitTemplate在容器线程上执行的任何操作都将参与事务并使用相同的通道。

如果您不使用交易,您可以使用 ChannelAwareMessageListener 访问接收消息的频道。参见 Message Listeners

如果您使用 @RabbitListener,您可以添加 Channel 作为方法参数。

当前 1.7.x 版本是 1.7.9.