Встроенная и реплицируемая база данных между микросервисами? - PullRequest
1 голос
/ 04 августа 2020

Требование:

  • 2 микросервис с высокими вычислениями, в котором 1 - производитель, а 1 - потребитель.

  • Сервис производителя производит 2 миллиона ключ, пары и который должен быть доступен мгновенно (максимум 1 мин.) службе потребителей

    • Примечание Служба поддержки пользователей считывает ключи по запросу. Среднее количество считываемых ключей может составлять 50 000 ключей в минуту. Поскольку эти ключи случайны, производитель вынужден снова и снова записывать новый пакет из 2 миллионов ключей.
    • у нас есть строгие требования KPI для этих 1-минутных мгновенных данных.
    • Поскольку служба поддержки потребителей имеет требование низкой задержки, поэтому он не может позволить себе много сетевых вызовов для чтения ключей.
  • Я использую In Memory Cache (redis) между этими двумя сервисами. Однако чтение / запись между производителем и потребителем создает состояние гонки, а иногда это приводит к отказу и чтению ключей.

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

...