Цель состоит в том, чтобы объединить несколько серверов в кластер Hazelcast, использующий один и тот же второй Hibernate-кэш. уровень кэша,
поэтому, когда Hibernate на одном из серверов (узлов) обновляет кеш, на всех других серверах (узлах) также обновляется кеш второго уровня.
Мне удалось создать кластер Hazelcast с двумя узлами, каждый из которых «видит» кеш второго уровня другого.
Проблема в том, что каждый из узлов по-прежнему использует свой собственный кеш, поэтому, когда один из них обновляет
другой продолжает извлекать старые (неизмененные) записи из своего «устаревшего» кеша.
Другими словами, у меня есть два кеша второго уровня, распределенные между двумя узлами, каждый из которых использует свой кеш.< /p>
Я использую Hazelcast 4.2, Hibernate 5.4, Spring Boot 2.4.8
Это мои свойства весенней загрузки:
Код: Выделить всё
spring.jpa.properties.hibernate.generate_statistics = true
spring.jpa.properties.hibernate.cache.use_second_level_cache = true
spring.jpa.properties.hibernate.cache.use_query_cache = true
spring.jpa.properties.javax.persistence.sharedCache.mode = ENABLE_SELECTIVE
spring.jpa.properties.hibernate.cache.region.factory_class = jcache
spring.jpa.properties.hibernate.javax.cache.provider = com.hazelcast.cache.impl.HazelcastServerCachingProvider
spring.jpa.properties.hibernate.javax.cache.uri = classpath:hazelcast.xml
Код: Выделить всё
true
true
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/686 ... -hazelcast