2015-05-21 2 views
6

Я использую Spring, Spring-Websocket, STOMP для своего приложения и RabbitMQ в качестве брокера. Мне нужно записывать все сообщения, проходящие через таблицы RabbitMQ в Postgresql. Я знаю, что могу писать @MessageMapping весной и регистрироваться там, но моя проблема в том, что некоторые клиенты разговаривают с RabbitMQ напрямую через протокол MQTT, а Spring еще не поддерживает его (https://jira.spring.io/browse/SPR-12581). Кроме того, клиенты браузера разворачивают Spring до RabbitMQ с использованием протокола STOMP.Как правильно получить все сообщения очереди от RabbitMQ весной?

RabbitMQ позволяет отслеживать все сообщения с помощью Firehose tracer. Как правильно прослушать тему amq.rabbitmq.trace из Spring? Или мне нужно написать отдельное приложение Java в качестве потребителя?

+0

Я не понимаю, что вам нужно сделать это с помощью пружины. просто настройте rabbitmq, чтобы сделать это. – Jaiwo99

+0

Мне нужно написать в БД по разным таблицам –

+1

хм .. тогда ИМО вам нужно приложение для этого. вы также можете поставить этого потребителя среди других потребителей. документ из rabbitmq довольно хорошо описывает (https://www.rabbitmq.com/firehose.html), посмотрите, если ваш вопрос заключается в том, что Spring amqp имеет эту функцию из коробки, тогда ответ отрицательный. – Jaiwo99

ответ

1

Spring AMQP для вас!

Вы связать некоторые пользовательские queue для того, чтобы amq.rabbitmq.trace с соответствующим рисунком (например, publish.#) и настроить SimpleMessageListenerContainer получать сообщения из этой очереди.

Это можно сделать даже с довольно простой конфигурацией: @EnableRabbit и @RabbitListener на каком-то методе POJO. Во всяком случае, Binding@Bean должен быть там, чтобы прикрепить свою очередь к этой бирже.

+0

Ну. Я плохо разбираюсь в Spring WebSocket Broker Relay и не уверен, что он будет работать, но вы можете попробовать «подписаться» следующим образом: '/ topic/exchange/amq.rabbitmq.trace/publish. #' –

+0

Подробнее здесь: https://www.rabbitmq.com/stomp.html –

+0

Можно ли использовать AMQP для прослушивания Rabbit и реле Stomp Broker для обслуживания клиентов в одном приложении? –

Смежные вопросы