@naruto3333

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы