如何在 Spring 中正确获取来自 RabbitMQ 的所有队列消息?

How to get properly all queue messages from RabbitMQ in Spring?

我正在使用 Spring、Spring-Websocket、STOMP 作为我的应用程序,并使用 RabbitMQ 作为代理。我需要将所有通过 RabbitMQ 的消息记录到 Postgresql 表中。 我知道我可以在 Spring 中写 @MessageMapping 并在那里登录,但我的问题是一些客户端直接通过 MQTT 协议与 RabbitMQ 对话,而 Spring 还不支持它(https://jira.spring.io/browse/SPR-12581 ).此外,浏览器客户端使用 STOMP 协议通过 Spring 与 RabbitMQ 通信。

RabbitMQ 允许使用 Firehose 跟踪器跟踪所有消息。如何从Spring正确收听amq.rabbitmq.trace话题?还是我需要作为消费者编写单独的 Java 应用程序?

Spring AMQP适合你!

绑定一些自定义queueamq.rabbitmq.trace具有适当的模式(例如publish.#)并配置SimpleMessageListenerContainer从该队列接收消息。

即使使用非常简单的配置也可以完成:@EnableRabbit@RabbitListener 在某些 POJO 方法上。无论如何,Binding @Bean 必须在那里将您的队列附加到该交换。