Redisson + Hibernate - слишком много пропусков кеша и высокий кеш помещен после периода - PullRequest
0 голосов
/ 09 июля 2020

В нашем решении используется конфигурация Redisson с программным созданием c кеша с использованием org.redisson.jcache.JCacheManager с одним сервером Redis. Кеши создаются с конфигурацией cache-api и ExpiryPolicy.

private Configuration<Object, Object> cacheConfig(final Factory<ExpiryPolicy> expiryPolicyFactory) {
        var configuration = new MutableConfiguration<>()
                .setExpiryPolicyFactory(expiryPolicyFactory)
                .setStatisticsEnabled(true);

        return RedissonConfiguration.fromInstance(redissonClient, configuration);
}

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

После периода тестов один (или несколько) кешей начинают «ухудшаться», и коэффициент промахов кэша начинает расти. Время размещения кэша также начало быть очень большим. У нас есть экран, показывающий статистику кеша. Это один из примеров статистики после возникновения проблемы.

Статистика кэша В этом примере все остальные кэши того же типа работают должным образом. Проблема возникает только с "Usuario.funcionalidades".

Проблема всегда возникает с вложенной коллекцией в объекте Hibernate. См. Отображение сущностей

Вы видели подобное поведение? Есть какие-нибудь подсказки о том, как лучше понять, что происходит?

...