Локальный кеш с Infinispan в wildfly 14 - PullRequest
1 голос
/ 24 июня 2019

Последние несколько дней я смотрю, как использовать Infispan для управления кэшем в моих приложениях. У меня есть несколько ушей приложений, которые работают на той же Wildfly и моя цель - иметь локальный кеш, который может использовать все мое приложение. Этот кеш не будет разделен между узлами. Я собирался использовать infinspan с jcache, поэтому я могу комментировать свои функции для кеширования результата. Меня не интересует реплицируемый кеш, потому что данные, которые я собираюсь кешировать, будут выгружаться каждые 5 минут, и данные не будут дублироваться на узлах (сеанс клиента сохраняется, и клиенты много раз вызывают эти функции со значением дифференциального ключа).

Я использую wildlfy 14 с автономным полным профилем и немного изучил документацию в Интернете. Я добавил новый контейнер кеша в систему конфигурации, также через cli

/subsystem=infinispan/cache-container=container-name:add
/subsystem=infinispan/cache-container=container-name/local-cache=container-name-default:add
/subsystem=infinispan/cache-container=container-name/local-cache=container-name-sd:add

Я вижу, что контейнер и кэш не публикуются с помощью jndi, и с помощью консоли wildfly я не могу найти добавленные кеши в строке времени выполнения jndi. Без строки jndi я не могу получить доступ к кешу.

Поскольку в первый момент я намеревался использовать JCache, я нашел документацию на сайте infinispan, чтобы добавить полный модуль infinispan в wildlfy. Чтобы использовать модуль donwloaded, я расширил wildfly с помощью модуля infinispan в разделе тегов расширений. При использовании автономного полного профиля у меня возникли некоторые ошибки при доступе к кешу, и аннотация @CacheResult не была запущена, в том числе с beans.xml, определенным с помощью перехватчиков

<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" version="1.1" bean-discovery-mode="all">
<interceptors>
     <class>org.infinispan.jcache.annotation.InjectedCacheResultInterceptor</class>
     <class>org.infinispan.jcache.annotation.InjectedCachePutInterceptor</class> 
     <class>org.infinispan.jcache.annotation.InjectedCacheRemoveEntryInterceptor</class>
     <class>org.infinispan.jcache.annotation.InjectedCacheRemoveAllInterceptor</class> 
</interceptors>

В конце я обнаружил, что, используя автономный профиль ha wildfy и добавляя jgroup в контейнер кеша, я могу опубликовать кеш со строкой jndi и использовать его.

Есть ли простой способ создания и доступа к локальному кешу с помощью infinispan и wildfly 14? Кто-нибудь может привести пример с ушным приложением? Правильно ли мне использовать профиль ha для определения нового контейнера кеша с jgroups? Я обнаружил, что в полном профиле wildfly кэш infinispan используется только для внутреннего использования, поэтому необходимо использовать профиль ha, как я уже говорил.

Спасибо за каждый ответ, и я надеюсь, что я был достаточно ясен.

...