Я использую кэш Hibernate L2 с Hazelcast в версиях Hibernate 5.3.2 и Hazelcat 3.10.4 с зависимостями hazelcast-all и hibernate-jcache и Spring в 5.0.6.Также попробовал недавние Hibernate 5.4.0 и Hazelcat 3.11.1.
У меня есть не очень сложная или глубокая ERM с примерно 7000 (кэшированными) объектами в базе данных.Я сконфигурировал сущности и коллекции с помощью @Cache (use = CacheConcurrencyStrategy.READ_WRITE) и, как нацелено на то, чтобы ни один sqls не выполнялся при получении кэшированных данных.
Пока все хорошо, но производительность неприемлема, напримербез кеширования L2 ~ 4 с для получения сущностей, с кешем Hazelcast L2 на месте никакого выигрыша в производительности вообще!
С Ehcache, который не подходит для моей кластерной среды, превосходная производительность ниже 500 мс для того жезапрос и с той же конфигурацией Hibernate (только что изменил 'hibernate.cache.region.factory_class').
Насколько я вижу, причина не может быть сетевой трафик кластера, потому что он уже медленный на моемлокальный компьютер только с 1 узлом.
Особое примечание о конфигурации Hazelcast, конфигурация клиента Hazelcast L2 выглядит следующим образом
<hazelcast-client xsi:schemaLocation="http://www.hazelcast.com/schema/client-config hazelcast-client-config-3.10.xsd"
xmlns="http://www.hazelcast.com/schema/client-config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<instance-name>hazelcast-l2-client</instance-name>
<group>
<name>${HZGroupName}</name>
<password>${HZGroupPassword}</password>
</group>
<network>
<cluster-members>
<address>${HZLocalAddress}</address>
<address>${HZMemberAddress}</address>
</cluster-members>
</network>
</hazelcast-client>
Конфигурация Hibernate
jpaAdditionalProperties.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.jcache.JCacheRegionFactory");
jpaAdditionalProperties.setProperty("hibernate.cache.use_query_cache", "true");
Итак, ясейчас я немного невежественен и не могу поверить, что Hazelcast такой медленный, возможно, я пропустил конфигурациючтобы ускорить процесс.Может ли кто-нибудь дать мне подсказку?
Спасибо