Hazelcast L2 кеш медленный - PullRequest
       9

Hazelcast L2 кеш медленный

0 голосов
/ 21 января 2019

Я использую кэш 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 такой медленный, возможно, я пропустил конфигурациючтобы ускорить процесс.Может ли кто-нибудь дать мне подсказку?

Спасибо

1 Ответ

0 голосов
/ 26 января 2019

@ Labtax, вам нужно также установить эти свойства, чтобы в кэше Hibernate L2 использовался Hazelcast:

jpaAdditionalProperties.setProperty("hibernate.cache.region.factory_class", "com.hazelcast.hibernate.HazelcastCacheRegionFactory");
jpaAdditionalProperties.setProperty("hibernate.cache.hazelcast.use_native_client", "true");

Пожалуйста, попробуйте эти свойства.

...