Springboot Ehcache загрузить данные - PullRequest
0 голосов
/ 15 ноября 2018
  • Сервис с использованием SpringBoot, Maven, MongoDB, Ehcache.

  • Сервису требуется быстрый и часто кеширующий сервер, поэтому в итоге я выбрал Ehcache.

  • Весь кэш будет вызываться почти с одинаковой частотой, поэтому в этом случае нет данных о горячем холоде.

  • Исходные данные в MongoDB будут обновляться каждый день службой таймера, поэтому я загружаю все обновленные данные в Ehcache каждый день.

  • Каждый элемент в этих данных имеет связь друг с другом, как будто вы используете один, чтобы найти соответствующие идентификаторы другого. Таким образом, если один кэш обновлен, а другой - нет, вы не сможете найти эти релевантные идентификаторы. Я хочу избежать этой ситуации.

Так что мой вопрос , есть ли способ достичь такой функции, как, например, использование двух серверов Ehcache или чего-то еще? т.е. когда один используется, другой может загрузить данные из MongoDB. Когда обновление будет завершено, переключите его на обновленное. Поэтому каждый день, когда данные MongoDB обновляются, и мне приходится обновлять данные Ehcache, это не влияет на мой текущий кэш. Это просто мысль, которая у меня есть. Другая мысль - это что-то вроде транзакции SQL. Есть ли другой способ добиться этого.

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 25 ноября 2018

Хороший вопрос. Я вижу два пути.

Одним из них является использование блокировки приложения. Когда вы будете готовы перезагрузить кеш, вы блокируете доступ к нему и делаете это. Нет возможности очистить все кэши одновременно. Проблема в том, что все будет заблокировано во время обновления.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...