Задать вопрос
@Meised

Как общаются микросервисы в реальных проектах?

Знаю, что Rabbit MQ или Kafka используются для того чтобы гарантировать что запрос который куда-то ушел, вернет ответ. А как собственно реализуют общение микросервисов? Сделать для каждого сервиса свой сервер и кидать запросы через REST? Или использовать gRPC? Тогда на каком этапе подключаются брокеры сообщений? Или запросы как-то идут в брокер, а уже из него в нужные сервисы, как тогда это реализовывают?
  • Вопрос задан
  • 6841 просмотр
Подписаться 2 Простой 2 комментария
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
По-разному, под каждую систему или даже под каждый сценарий взаимодествия выбираются свои способы. Довольно часто явление, когда внешнее API - REST, внутреннее синхронное - gRPC, асинхронное - Kafka.
Ответ написан
Комментировать
@Everything_is_bad
Как общаются микро-сервисы в реальных проектах?
вот через упомянутые тобой Rabbit MQ или Kafka и общаются, не понятна проблема.
Общая рекомендация, поучаствовать сначала хотя бы в создании монолита, а только потом можно будет смотреть в сторону микросервисов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Как правильно написал Сергей Горностаев, всё зависит от задачи.
Например, у вас маркетплейс, и в нем микросервис отзывов о товаре. Это совершенно некритичный функционал, и поэтому никакие очереди тут разумеется не нужны.
Фактически, фронт может даже напрямую к нему обращаться, и выводить заглушку, если отзывы недоступны.
Ну или внутри, при формировании страницы товара, код может дёрнуть микросервис и поставить заглушку, если тот недоступен. Дергать опять же можно по-разному, но для универсальности можно делать тот же REST, причём во внутреннем контуре даже без SSL (и его накладных расходов).

Брокеры же нужны там, где важна целостность. Например оповещения, по почте или СМС. Закинул оповещение в очередь, и дальше оно всё равно уйдет пользователю даже если конкретно в этот момент сервис отправки недоступен.
Ответ написан
Комментировать
AleksejMsk
@AleksejMsk
Программирую от души за деньги
Микросервисы ненужны.
А если нужны (нужна аргументация их полезности игнорируя маркетинг коучей по микросервисам) то ненжны очереди так как и без них два процесса смогут общаться по любому удобному протоколу ... http grpc и т.д.
Очереди нужны как удобный уровень абстракции от потребителя сообщения.
На практике - rest как удобный и читаемый человеком протокол.
Если просадки то переходим на уровень погеморойней grpc.
В общем усложнять себе жизнь все предпочитают поэтапно, если такое позволительно.
Ответ написан
В реальных сервисах способ коммуникации выбирают исходя из требований к надёжности, доступности, и задержкам.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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