Как интегрировать весенние данные elasti c search с принципами CQRS? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть несколько микро сервисов. Скажем так:

  • micro service consoleUser создает объект Writer и другие объекты, связанные с писателем enter image description here
  • micro service Ebook создает объект Ebook Object и другие объекты, такие как оценка, комментарии и пр. c ... enter image description here
  • micro service appUser создает пользовательский объект приложения пользователя и другие объекты, связанные с пользователем приложения. enter image description here

Я пытаюсь реализовать компонент CQRS с использованием Spring + elasticsaerch, чтобы получить компонент, в котором данные объединяются. Этот компонент будет использоваться для поиска. Это будет мой поисковый микросервис.

Когда в одном из перечисленных выше микросервисов есть событие Create - Update или delete, этот микросервис отправляет объект в AMQP topi c. Тогда сервис Micro поиска получит эти данные.

Мой вопрос: каков наилучший способ объединения данных? Должен ли я создать один большой Pojo, например:

public class MyBigPojo {
   consoleUser myConsoleUserObject;
   ebook myEbookList;
   appUser appUserListForThisEBook;

}

Или я должен создать один документ на объект. Это как раз то, как я могу сделать, чтобы объединить данные, используя, например, их Id, поэтому, когда я получаю consoleUser, я получаю все электронные книги, опубликованные этим пользователем, и все appuser, которые оставили комментарий?

В случае обновления Как я могу сделать, чтобы просто обновить объект, который должен быть обновлен, не обновляя все в данных слияния?

Заранее спасибо за вашу помощь.

...