У меня есть приложение с использованием Spring Framework/Spring Boot/Spring Messaging/Websockets и я собираюсь развернуть его на Elastic Beanstalk. Вы можете думать о применении в качестве приложения чата (это на самом деле имеет функции чата)Работа с Spring Boot Clustered Websockets на Amazon Beanstalk
Сценарий
Ниже приведен пример сценария:
Client A <-> Server A
Client B <-> Server B
Client C <-> Server B
Теперь, если Client A
посылает сообщение, используя весенний обмен сообщениями, если я отправлю это сообщение всем подключенным клиентам, только Client A
увидит его, потому что только Client A
подключен к Server A
, а также, если Client B
делает, только Clients B and C
увидит это, а не Client A
.
Так что это оставляет мне проблему с какими вариантами у меня есть.
Возможные решения
Если возможно, я хотел бы использовать службы Amazon, как я уже в своей облачной платформе.
Я думал об использовании Amazon SQS, каждый сервер подписывался на одну и ту же очередь, а затем отправлял все уведомления через него, но я считаю, что все запросы с SQS активны, поэтому мне нужно было бы сделать опрос и создать значительная задержка.
Кто-нибудь знает о хорошем решении этой проблемы? Я могу настроить сервер для обработки всех веб-сокетов, но это не оптимально.
Заранее благодарен!
Я также рассматриваю возможность использования чего-то вроде Firebase, пока латентность не плохая. – Nitroware
Вы хотите, чтобы серверы A и 'Server B' работали в одном экземпляре? Или вы хотите, чтобы они бежали полностью отдельно друг от друга? –
Это автомасштабирование, поэтому они представляют собой отдельные серверы, созданные при высокой загрузке, и автоматически удаляются при низкой загрузке. – Nitroware