如何在Spring中正确地从RabbitMQ获取所有队列消息?

如何在Spring中正确地从RabbitMQ获取所有队列消息?,spring,rabbitmq,mqtt,stomp,spring-websocket,Spring,Rabbitmq,Mqtt,Stomp,Spring Websocket,我在应用程序中使用Spring、SpringWebSocket、STOMP和RabbitMQ作为代理。我需要记录所有通过RabbitMQ传递到Postgresql表的消息。 我知道我可以在Spring中编写@MessageMapping并在那里登录,但我的问题是一些客户端直接通过MQTT协议与RabbitMQ通信,Spring还不支持它()。此外,浏览器客户端使用STOMP协议通过Spring与RabbitMQ通信 RabbitMQ允许使用Firehose tracer跟踪所有消息。如何正确收听

我在应用程序中使用Spring、SpringWebSocket、STOMP和RabbitMQ作为代理。我需要记录所有通过RabbitMQ传递到Postgresql表的消息。 我知道我可以在Spring中编写@MessageMapping并在那里登录,但我的问题是一些客户端直接通过MQTT协议与RabbitMQ通信,Spring还不支持它()。此外,浏览器客户端使用STOMP协议通过Spring与RabbitMQ通信

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

这是为您准备的

您可以使用适当的模式(例如,
publish.#
)将一些自定义
队列
绑定到该
amq.rabbitmq.trace
),并配置
SimpleMessageListenerContainer
以接收来自该队列的消息


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

我不明白您需要使用spring。只需配置rabbitmq即可。我需要将DB写入不同的表HMM。。然后,你需要一个应用程序来做这件事。您当然也可以将此消费者放在其他消费者中。rabbitmq中的docu描述得非常好(),看一看,如果您的问题是SpringAMQP是否有这个现成的特性,那么答案是否定的。我不擅长Spring WebSocket代理中继,也不确定它是否能工作,但您可以尝试
订阅
,如下:
/topic/exchange/amq.rabbitmq.trace/publish.#
使用AMQP来监听Rabbit,并在一个应用程序中跺跺代理中继来服务客户机,可以吗?没错!SpringStomp支持只关心应用程序中WebSocket的一部分,但通过SpringAMQP,您可以围绕代理队列和其他队列进行艰苦的工作。