#infinispan
#infinispan
Вопрос:
Когда я тестировал метод истечения срока действия кэша узла кластера 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();
Комментарии:
1. Какая версия Infinispan?
Ответ №1:
Похоже, вы используете более старую версию Infinispan. Максимальное время ожидания в кластере не было введено до 9.3 в https://issues.jboss.org/browse/ISPN-9003 . Если эта проблема все еще сохраняется в версии 9.3 или новее, вы можете зарегистрировать ошибку на https://issues.jboss.org/projects/ISPN .