Применение фильтра и пагинации на разных микро сервисах - PullRequest
1 голос
/ 09 февраля 2020

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

Служба учета хранит такие данные, как идентификатор счета, идентификатор клиента, остаток на счете, заработанные проценты и другие денежные данные.

Служба поддержки клиентов имеет личные данные, такие как идентификатор клиента, домашний адрес, идентификатор электронной почты, частота отправки электронных писем / предупреждений, тип клиента (Premium, Gold, Silver) ... и др c.

У учетной записи есть идентификатор клиента в качестве внешнего ключа для сопоставления учетной записи и данных клиента.

Требование таково, что мне нужно создать поисковый пользовательский интерфейс память эффективная . Получить все счета, которые принадлежат к определенному типу клиента (премиум / золото) и имеют баланс более 200 $. Таким образом, если вы видите, что есть фильтр перекрестного соединения ie, фильтр должен быть применен к обоим микросервисам для получения желаемых данных. Кроме того, будет выбрано только 10 записей (размер страницы). При нажатии на следующую кнопку будут получены следующие 10 записей.

Итак, как мне получить записи / сохранить данные для этого сценария? Это своего рода вопрос дизайна / архитектуры. Я не ожидаю синтаксиса запроса или синтаксиса sql или синтаксиса гибернации (ORM).

Должен ли я получить все записи одновременно, сохранить их в памяти и затем применить фильтры вместе с нумерацией страниц , Или я должен использовать некоторые партии?

Кроме того, я не буду предпочитать SQL присоединения. Это создает зависимость. Если таблицы базы данных будут изменены, это повлияет на запрос

...