2015-05-21 16 views
6

Ich verwende Spring, Spring-Websocket, STOMP für meine Anwendung und RabbitMQ als Broker. Ich muss alle Nachrichten protokollieren, die RabbitMQ zu Postgresql-Tabellen führen. Ich weiß, dass ich @MessageMapping im Frühjahr schreiben und dort anmelden kann, aber mein Problem ist, dass einige Clients mit RabbitMQ direkt über MQTT-Protokoll sprechen, und Spring unterstützt es noch nicht (https://jira.spring.io/browse/SPR-12581). Darüber hinaus sprechen Browser-Clients Spring mit RabbitMQ mit STOMP-Protokoll.Wie bekomme ich alle Queue-Nachrichten von RabbitMQ im Frühling richtig?

RabbitMQ ermöglicht die Verfolgung aller Nachrichten mit Firehose Tracer. Wie kann man amq.rabbitmq.trace topic von Spring richtig hören? Oder muss ich separate Java-App als Consumer schreiben?

+0

ich verstehe nicht, dass Sie es mit Feder tun müssen. Konfigurieren Sie einfach rabbitmq, um es zu tun. – Jaiwo99

+0

Ich muss in DB zu verschiedenen Tabellen schreiben –

+1

hmm .. dann IMO brauchen Sie eine Anwendung, um es zu tun. Sie können diesen Verbraucher sicherlich auch unter andere Verbraucher bringen. die Doku von rabbitmq beschreibt ziemlich gut (https://www.rabbitmq.com/firefose.html), werfen Sie einen Blick, wenn Ihre Frage ist, ob Frühling amqp diese Funktion out-of-Box hat, dann ist die Antwort nein. – Jaiwo99

Antwort

1

Die Spring AMQP ist für Sie!

Sie binden einige benutzerdefinierte queue bis zu diesem amq.rabbitmq.trace mit geeigneten Muster (beispiels publish.#) und konfigurieren SimpleMessageListenerContainer Nachrichten von der Warteschlange zu empfangen.

Es kann auch mit ziemlich einfachen Konfig: @EnableRabbit und @RabbitListener auf einige POJO-Methode erfolgen. Wie auch immer, die Binding@Bean muss da sein, um Ihre Warteschlange an diesen Austausch anzuhängen.

+0

Gut. Ich bin nicht gut in der Spring WebSocket Broker Relay und nicht sicher, dass es funktioniert, aber Sie können versuchen, "abonnieren" wie folgt: '/ topic/exchange/amq.rabbitmq.trace/veröffentlichen. #' –

+0

Weitere Informationen hier: https://www.rabbitmq.com/stomp.html –

+0

Ist es in Ordnung, AMQP zu verwenden, um Kaninchen zu hören, und Stomp Broker-Relais, um Klienten in einer Anwendung zu dienen? –