Синхронизация Stomp через веб-сокеты в SpringBoot в кластере с Redis в качестве посредника сообщений

#java #spring-boot #redis #stomp

Вопрос:

Я работаю над веб-приложением SpringBoot с использованием веб-сокетов, и у меня есть функциональная реализация для одного сервера.

Я изучаю наилучшее решение для интеграции кластера серверов, чтобы клиенты, подключенные к каждому из серверов с балансировкой нагрузки, получали широковещательные сообщения, отправляемые со всех серверов.

Какова наилучшая практика подключения кластеризованных серверов веб-сокетов?

Я вижу ссылки на RabitMQ, но, поскольку у нас уже есть Redis, я пытаюсь выяснить, будет ли Redis работать в качестве брокера сообщений Stomp.

Заранее спасибо,

Эрион

Ответ №1:

Я смог реализовать это, используя существующую настройку Redis / Sentinel с помощью pub/sub.

События отправляются на сервер с помощью SockJS, как обычно, а затем Redis, который затем публикуется подписчикам.

Я использовал эту справочную документацию по SpringBoot: https://docs.spring.io/spring-data/data-redis/docs/2.5.4/reference/html/#reference