Используйте реактивный поток / веб-поток с приложением Spring AMQP без веб-зависимости - PullRequest
0 голосов
/ 03 марта 2020

Я начал изучать Spring Web Flux. Мое текущее требование использовать Spring Web Flux с AMQP в моем проекте. В этом проекте используется rabbitmq Publi sh -Подписка для обмена сообщениями AMQP, и проект не имеет веб-зависимости. Этот проект будет работать исключительно на стороне сервера.

Ниже приведен мой демонстрационный файл сервиса с rabbit-listener. Этот сервис получает необходимые данные в полезную нагрузку сообщения, а затем сервис обрабатывает их в соответствии с данными полезной нагрузки и выполняет необходимую задачу.

public class HandlerService {

    @RabbitListener(queues = "${amqp.queue}")
    public void consumeMessageFromDlrRoute(final Message<?> message)
    {
        System.out.println(" message - "+message);
        try {

            ByteArrayInputStream in = new ByteArrayInputStream((byte[]) message.getPayload());
            ObjectInputStream is = new ObjectInputStream(in);
            MyDomain domain = (MyDomain) is.readObject();

            // code changes related to this service.

        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
}

Итак Для преобразования этого проекта в потоки webflux / rective с помощью AMQP я отослал эту статью https://www.baeldung.com/spring-amqp-reactive и многие другие проекты на github. Все источники говорят об использовании типов Mono и Flux с веб-зависимостью и получении необходимых данных из конечных точек web / REST, а затем манипулируют ими, где, как и в моем проекте, я получаю массив байтов данных в полезной нагрузке сообщения AMQP.

Вы можете найти демонстрационную версию моего текущего проекта по этому вопросу - https://github.com/gotidhavalh/amqpdemo

Итак, мой вопрос заключается в том, как я могу преобразовать этот мой проект в использование реактивного потока / пружины веб-потока? Может ли кто-нибудь помочь в этом. Любая помощь будет оценена.

...