кэш 2-го уровня infinispan hibernate - XML Требуется формат конфигурации - PullRequest
0 голосов
/ 04 февраля 2020

В настоящее время мы используем ehcache в качестве кэша 2-го уровня со следующей конфигурацией в нашем приложении.

<!--  Configure 2nd level cacheing for these entities -->
<cache name="cacheEntity1"
    maxElementsInMemory="1500"
    eternal="true"
    overflowToDisk="false"/>
<cache name="cacheEntity2"
    maxElementsInMemory="3500"
    eternal="true"
    overflowToDisk="false"/>

Мы планируем перейти к бесконечному кешу. Изучив документацию по infinispan, мы не можем найти никаких примеров конфигурации XML для определения сущностей кэша, аналогичных приведенным выше, с использованием ehcache.

Мы собираемся настроить следующие атрибуты (maxInMemory, timeToIdleSeconds , timeToLiveSeconds) на уровне спящего объекта.

Мы предпочитаем использовать эту конфигурацию, используя XML, а не программным способом.

Любое предложение?

Ссылка - https://infinispan.org/docs/8.2.x/user_guide/user_guide.html#_using_infinispan_as_jpa_hibernate_second_level_cache_provider

Спасибо,

Садашив

Ответы [ 2 ]

6 голосов
/ 07 февраля 2020

@ Sada, для кэша Infinispan Hibernate, я настоятельно рекомендую вам взглянуть на простые уроки, которые у нас есть здесь . Они охватывают отдельные случаи использования Spring и WildFly. Я бы начал там.

Также см. Базовую конфигурацию , которую мы используем для конфигурации кэша. LIRS не используется, и нет смысла сохранять локальный кэш второго уровня на диске, он просто замедлит работу или излишне потребит дополнительные ресурсы.

0 голосов
/ 07 февраля 2020

Я предлагаю вам настроить кэш, настроенный по стратегии eviction .

Например. (внутри вашей конфигурации кеш-контейнера)

      <local-cache name="cacheEntity1" >
         <eviction max-entries="1500" strategy="LIRS"/>
      </local-cache>
      <local-cache name="cacheEntity2" >
         <eviction max-entries="3500" strategy="LIRS"/>
      </local-cache>

Если вы хотите sh переполнить записи на диске, вы можете добавить в локальный кеш постоянное хранилище.

Например.

      <local-cache name="cacheEntityX" >
         <eviction max-entries="3500" strategy="LIRS"/>
         <persistence passivation="false">
            <file-store path="/mydata/FileCacheStore-LocationX" />
         </persistence>
      </local-cache>

Выселение обычно используется вместе с хранилищем кеша (записи не теряются навсегда при выселении). Выселение только удаляет записи из памяти, но не из кеша. См. Infinispan Docs

Вы можете выбрать другую стратегию выселения (NONE, UNORDERED, LRU, LIRS, MANUAL). Имейте в виду, что некоторые стратегии устарели в последних версиях Infinispan. стратегии выселения

Если вы хотите прикрепить к записям продолжительность жизни и / или максимальное время простоя, Expiration - ваш выбор. срок действия

Например.

 <local-cache name="cacheEntityX" >
     <eviction max-entries="3500" strategy="LIRS"/>
     <expiration lifespan="1000" max-idle="500" interval="1000" />
     <persistence passivation="true">
        <file-store path="/mydata/FileCacheStore-LocationX" />
     </persistence>
  </local-cache>

Надеюсь, это поможет.

...