Сокетные кластеры с Pub Sub на облаке

Я создаю транспортный слой для веб-приложения. Пользователи могут быть подключены через мобильные приложения, оба браузера. Транспортный уровень является внешним интерфейсом для нескольких приложений, включая приложения чата, многостраничные веб-приложения, серверы уведомлений и электронной почты. Масштаб составляет около 4000 одновременных пользователей. Несколько сценариев Различные сервисы также могут взаимодействовать друг с другом. Например, сервер чата может отправить электронное письмо.

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

Мой дизайн: 1. Создайте сокеты через NettoSphere ( https://github.com/Atmosphere/nettosphere) или Netty с FallBacks для HTTP-опроса. 2. Соедините Socket Layer с пабом / сабом, таким как Redis (на данный момент используя Cloud / Pub / Sub). Каждый функциональный сервер (электронная почта, чат и т. Д.) Получает свой собственный канал.

Сомнения: 1. Превышаю ли я это? Есть ли готовые библиотеки из полок, которые я могу использовать? Я искал, но не мог найти. Я чувствую, что это должен быть распространенный вариант использования, и что-то должно быть с полки. 2. Для Java будет ли Nettosphere масштабироваться по кластерам? Или я должен использовать SocketCluster в Node.js. Мне удобнее на Яве.

1 ответ

Простой паб / саб не так уж сложно реализовать с нуля с помощью WebSockets.

Но как только вы вводите требование аутентификации и / или масштабируемости, проблема становится очень сложной. Если вы чувствуете, что вашей системе может понадобиться любая из этих двух функций, то SocketCluster должен сэкономить вам много времени.

Другие вопросы по тегам