Это «законный» дизайн микросервисов? - PullRequest
0 голосов
/ 21 апреля 2019

Установка:

  • В рамках всей системы существует концепция списка товаров для каждого клиента, и это необходимо для концепции, понимаемой несколькими службами A, B, C.
  • Те же самые несколько служб выполняют особый тип работы, который работает с этим списком элементов.
  • Это нормально, если B или C работают с версией списка элементов, которая не обновлена, если они в конечном итоге получат последнюю версию.

Мой дизайн:

  • Одна служба А является источником правды для текущего состояния списка предметов. В этом сервисе манипулируют списком.
  • Когда список изменяется, A публикует список, а B и C подписчики этого события сохраняют его копии в собственном хранилище.
  • Когда B и C выполняют свою работу, они используют свою локальную копию списка.
  • B и C также имеют дополнительные состояния, специфичные для их домена.

Мое обоснование:

Поскольку B и C не запрашивают список A, когда выполняют свою работу, они не зависят от A. Если A по какой-то причине выходит из строя, влияние на систему заключается только в том, что B и C не иметь актуальную информацию, которая является приемлемой, и которая будет смягчена, когда фиксированный A.

Что-то не так с этим?

1 Ответ

0 голосов
/ 25 апреля 2019

B и C имеют то, что известно как кэш. Это приемлемо, когда оно устарело, просто сделайте способ проверить с помощью A, какая версия является текущей (часто используется дата последнего изменения), и у вас все будет хорошо.

...