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