Обновить / Добавить как отдельный сервис и Получить как отдельный сервис - PullRequest
0 голосов
/ 04 июня 2018

Мы начали мигрировать наш существующий проект в микросервисную архитектуру.Пройдя много видео / лекций, мы пришли к выводу, что служба должна выполнять одну задачу и только одну задачу и должна справляться с ней.Службы должны быть разработаны вокруг Noun и Verb.

У нас есть объект, который в основном выполняет операции CRUD.Теперь операции добавления, обновления и удаления являются наименее используемыми операциями, но запросы GET слишком высоки по сравнению с этими операциями.Как правило, обновление / добавление / удаление выполняется администраторами.

Мы думаем о том, чтобы разбить сущность CRUD на две службы

  • EntityCUDService (создать / обновить / удалить)
  • EntityLookupService (get)

Теперь обе эти службы указывают на одну и ту же коллекцию в монго или говорят на некоторый SQL.Теперь, если EntityCUDService внес некоторые изменения в коллекцию / таблицу, то EntityLookupService завершится неудачей.

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

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 05 июня 2018

Как правило, микросервис должен управлять одним объектом.Таким образом, в вашем случае вы можете иметь один микро-сервис для управления сущностью (для различных операций над сущностью).Теперь, если вы хотите снова разделить службу на основе операций чтения и записи, вы следуете шаблону CQRS.В CQRS вы разделяете свой микросервис на основе операций чтения и записи.Так что теперь у вас будет 2 службы, одна из которых называется службой команд, а другая - службой запросов через одну и ту же сущность.Я предложу сначала использовать одну службу для управления сущностью, а затем при необходимости разделить ее для отдельной службы для операций чтения и записи.Опять же, если вы собираетесь использовать CQRS, взгляните на источник событий, так как он прекрасно сочетается с CQRS в дизайне микросервисов.

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