Как построить отчетность в архитектуре микросервисов? - PullRequest
3 голосов
/ 21 марта 2019

Во время выполнения POC вокруг архитектуры Microservices;одна из задач, которую мне нужно объяснить, это как получить данные отчетов из разных служб эффективным способом?

Я был бы признателен за то, чтобы направить меня в правильном направлении.

Ответы [ 2 ]

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

Если данные охватывают несколько микросервисов, это зависит от варианта использования в бизнесе. На мой взгляд, есть несколько способов сделать это

Подход 1, запрос к микросервисам dbs (не предпочтительный подход)

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

Подход 2 Источник событий / CQRS

Этот подход очень предпочтителен, поскольку ваши модели записи и чтения полностью разделены. Короче говоря, если события - это события, генерируемые вашими различными микроуслугами, также будет обновляться модель чтения, называемая материализованным представлением. Если у вас есть требование, когда ваши отчетные данные требуют данных почти в реальном времени, то это путь для продвижения вперед. Вы можете настроить свою модель отчетности по своему усмотрению и создать несколько моделей отчетности с использованием событий. Но это сложный подход и требует соответствующего дизайна приложения. Однако преимущества бесчисленны. Вы можете узнать больше о Event Sourcing и CQRS, если вы заинтересованы.

Подход 3 имеет реплики только для чтения

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

0 голосов
/ 22 марта 2019

Начните думать о том, как проектировать приложение в монолитной архитектуре (стратегия с монолитным приоритетом), затем определите ограниченный контекст для каждой службы Miro.

Как только вы проясните границы микросервисов, начните думать об отчетах. Может быть, в одном отчете нужны данные из нескольких микросервисов, для этого необходимо объединить микросервисы.

Более подробную информацию вы найдете по следующей ссылке на github

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