Последние несколько дней я смотрю, как использовать 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, как я уже говорил.
Спасибо за каждый ответ, и я надеюсь, что я был достаточно ясен.