RabbitMQ + Архитектура чата WebSocket - PullRequest
0 голосов
/ 08 мая 2020

Я разрабатываю чат-сервис с использованием RabbitMQ и WebSockets. Это моя архитектура:

enter image description here

Некоторые наблюдения:

  • Я думаю, что основным недостатком этой архитектуры является каждый клиент WebSocket получает копию сообщения, доставленного клиентом A. Если клиент B не подключен к этому WebSocket, сообщение просто игнорируется.
  • В Load Balancer B включен липкий сеанс, поэтому клиенты всегда будут повторно подключаться к одной и той же службе WebSocket.
  • Количество экземпляров API чата не всегда такое же, как у служб WebSocket.
  • Load Balancer реализован с использованием Nginx
  • Chat API и служба WebSocket реализованы с использованием Nodejs
  • Клиенты: Android, iOS или веб-приложения.

Ребята, есть ли у вас какие-нибудь советы, как это улучшить?

...