Руководство о том, как сделать так, чтобы микро-сервисы эффективно общались - PullRequest
1 голос
/ 29 марта 2019

Мы приступаем к разработке нового проекта, в котором у нас будет несколько микро-сервисов, взаимодействующих друг с другом для предоставления информации в собственной облачной системе. Наше приложение будет разбито на несколько сервисов, таких как Text Cleaner, Entity Extractor, Entities Resolver, Output Converter. Как вы можете видеть на диаграмме, у нас есть некоторые разветвления, где вход для одного сервиса требуется другим сервисом и т. Д.

Снаружи будет открыт только один сервис. Другие будут внутренними. И мы должны предоставить синхронный ответ клиентам.

Я хотел проверить, может ли кто-нибудь помочь мне найти лучшие образцы:

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

2- Как организовать этот поток? Сервис Mesh / Api Gateway?

Service Dataflow patterns

1 Ответ

1 голос
/ 31 марта 2019

Похоже на решение, основанное на рабочем процессе. Когда задействовано так много шагов;единственный ответ, который вы можете дать потребителю, - это то, что запрос принят ... и в фоновом режиме процесс запускается .. Вы не можете позволить потребителю ждать очень долго, потому что он получит время соединения.

, если все эти службы развернутына разных серверах (что должно быть в случае определения микро сервисов для масштабируемости);вы можете общаться через HTTP или с помощью какого-либо решения для обмена сообщениями, такого как JMS, или если вы развернуты в облаке;они предоставляют услуги на основе рабочего процесса ..

...