Я хотел бы иметь некоторый вспомогательный кеш в памяти, который позволит избежать выполнения запросов к базе данных, но вместо этого возвращает результаты из кеша + также обновляет кеш в случае, если я изменяю базу данных. Таким образом, я хочу уменьшить количество запросов в нашей системе и повысить глобальную производительность.
Я думал о следующих решениях:
- Кэш RDD - для меня это кажется немного громоздкий, особенно обновление функциональности - мне нужно отключить и сохранить новую
- Apache Ignite, hazelcast или некоторую распределенную систему - я бы хотел избежать внедрения новой технологии для небольшого вспомогательного кэша
- Simple Реализация автономного кэша и наличие экземпляра на каждом рабочем узле - проблема в том, что данные должны быть изолированы и обрабатываться только на этом узле. Это может работать для меня, но проблема может возникнуть в случае сбоя узла или лучшего временного отключения узла, где, я думаю, другой узел будет обновлять данные, которые уже находятся в кэше на временно отключенном узле. Кэш может устареть Тогда и не синхронизироваться.
У вас есть какие-либо идеи, как решить проблему, или мне действительно нужно go с какой-нибудь технологией, такой как Ignite / Hazelcast?