Вопросы по устройству микросервисных архитектур

Предисловие: посмотрел видео на эту и смежные темы и окончательно запутался, надеюсь, поможете разобраться

насколько я понял, у нас есть один сервер, который принимает запросы, дальше идет api-gateaway, который уже передает запрос на микросервисы вопросы:

  1. API-gateaway собирает ответы микросервисов и выдает их в один ответ? Например, есть запрос на получение статистики о видео и самим роликом. Для каждой из информации свой микросервис. Так вот, запрос приходит на gateaway, должен ли он "вникать в суть" запроса и рассылать два запроса на микросервисы статистики и стриминга видео, а потом объединять ответы и возвращать их? Или это должен делать отдельный микросервис, куда gateaway перенаправляет запросы?
  2. Допустим в цепочке есть ещё брокер сообщений после gateaway, то должен ли он выполнять роль, описанную в предыдущем вопросе? Т.е. должен ли он собирать ответы и возвращать их клиенту?
  3. Микросервисы должны общаться между собой, а как они должны это делать? Через брокер сообщений? А если его нет, то как, через gateaway? И, например, возможно ли общение между ними в системе сервер -> микросервисы, т.е. без посредников?
  4. В одном видео говорят, что у каждого микросервиса своя база данных, а т.к. сервисы должны сохранять автономность, то в базах данных даже повторяются данные, в другом ролике автор утверждает, что всё не редко делается в одной базе данных, а объясняет это проблемами с лицензированием, получается, что разные базы данных не так нужны? Какая же система баз данных соответствует идеи микросервисной архитектуры (смею предположить, что первая) и так ли вообще это важно, если кто-то и на одной базе данных живет?

И еще один вопрос слегка касающийся этой темы: Где должен быть балансировщик в этой цепочке? Для микросервисов: если у нас один микросервис несколько раз запущен, то все запросы прежде чем попасть к нему, идут в отдельный от всех балансировщик, который решает, кому их отдать? И для серера: это делается на уровне DNS? даже представить не могу, как это работает


Ответы (0 шт):