Когда я тестировал метод истечения срока действия кеша узла кластера infinispan, я обнаружил, что, когда узел достиг максимального времени простоя, он не получит «последний раз, когда к записи обращаются» от других узлов в кластере, но сразу сделает недействительной запись кэша узла. Например: я запустил два узла A и B и установил максимальное время простоя кэша равным 10 с. В начале теста я отправил запрос в узел A для доступа к записям базы данных и записи записей базы данных в кэш. В это время Узел A синхронизирует кэш данных с Узлом B. Затем в 5 секунд я получил доступ к записи кэша в Узле A, а затем в Узле B через 10 секунд. Я обнаружил, что запись в кэше на узле B недействительна, узел B извлек записи базы данных из базы данных, записал кэш и синхронизировался с другими узлами вместо того, чтобы рассматривать кеш как действительный.
Почему он отличается от описания в документе? http://infinispan.org/docs/stable/user_guide/user_guide.html#expiration_details
Для конфигурации сбоя срока действия кэша узла кластера я настраиваю его следующим образом:
Configuration C = new ConfigurationBuilder()
.expiration().enableReaper(). wakeUpInterval(50000L).maxIdle(10000l).build();