Как эффективно масштабировать серверы Websocket? - PullRequest
0 голосов
/ 22 марта 2019

Итак, давайте рассмотрим группу приложений Websocket. Каждый пользователь подключен к одному из этих серверов. Мне нужно реализовать приложение чата, в котором каждый пользователь может отправлять сообщения любому пользователю.

Я ищу быстрый, надежный, масштабируемый подход, как это сделать.

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

Итак, какую шину событий я должен использовать?

Конечно, я знаю о Redis Pub / Sub , но я не уверен, что это лучший вариант в 2019 году.

1 Ответ

1 голос
/ 25 марта 2019

Redis Pub / Sub - действительно хороший вариант. Одна вещь, о которой вам нужно беспокоиться - это ограничение количества подключений в определенных сценариях. Поскольку вы знаете, что WebSockets являются долгоживущими соединениями, балансировка нагрузки этой вещи работает немного иначе, чем Http. Я предлагаю вам прочитать эту вещь, я уверен, что вы найдете хорошие ресурсы для этого.

...