Как должно происходить взаимодействие между микросервисами и шлюзом API в архитектуре микросервисов? - PullRequest
0 голосов
/ 19 ноября 2018

В случае разработки приложения на основе микросервисов я понимаю, что шлюз API должен поддерживать синхронные и асинхронные вызовы других микросервисов.

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

Мы подумали, что нам следует использовать служебную шину для обоих типов связи (синхронной и асинхронной), поскольку мы разделили бы эти знания на служебной шине, и шлюз API больше не будет знать о конечных точках, которые он должен вызывать. Вместо этого он отправляет сообщения через служебную шину, и микросервисы обязаны прослушивать эти сообщения.

Однако мы не знаем наверняка, сможем ли мы реализовать синхронную связь по служебной шине. Это означает, что мы не знаем, сможет ли API-шлюз ожидать ответа на определенное сообщение, которое он отправляет по служебной шине.

Есть ли способ, которым это может быть достигнуто? Кроме того, если вы обнаружите какое-либо неправильное представление о моем понимании того, как должно происходить общение, расскажите мне об этом, поскольку я довольно новичок в этой архитектуре.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...