@naruto3333

Как сделать микросервисы из вебсокетов?

У меня есть на бекенде сервис A и B на разных машинах. Пользователь через браузер подключается к сервису B через вебсокет, но ему нужно во время этой сессии также общаться с сервису A, причем также через вебсокет. Открывать 2 вебсокета я ведь не смогу в браузере. Как тогда сделать так, чтобы сервис B ходил на A? Или между ними нужно сделать медиатор в виде шины сообщений?
  • Вопрос задан
  • 537 просмотров
Решения вопроса 2
@0nkery
Да, желательно, чтобы у вас была одна точка входа в систему, потому что нормальная настройка вебсокет-шлюза займет немало времени, да и это будет полезно, если вы вдруг решите изменить архитектуру -- добавить сервис C, к примеру. Ваш клиент эти тонкости волновать не должны (в общем случае).

Дальше необязательно, чтобы клиент обращался напрямую к сервисам A и B -- вебсокет-шлюз может сам общаться с внутренними сервисами и реализовывать сложные сценарии взаимодействия в бэкенде.

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

Ну и подумайте еще раз -- а так ли нужны вам отдельные сервисы? Может быть, лучше обойтись монолитом?
Ответ написан
Комментировать
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Пора бы узнать что есть такая вещь как api gateway, которая разделяет пользователя и сервисы, является единой точкой входа и скрывает богатый внутренний мир) и там уже можно использовать что угодно: хоть вебсокеты, хоть rest, grpc, да можно даже просто взять очереди сообщений
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы