Как создать кеш на бесконечном кластере при запуске - PullRequest
0 голосов
/ 17 мая 2018

У меня есть следующая конфигурация с использованием

org.infinispan', name: 'infinispan-spring4-common', version: '9.1.7.Final'

Вопрос в том, как программно создать кеш? или как я могу создать кеш во время загрузки сервера infinispan?

Я не могу создать тэг "infinispan-as-spring-cache-provider", может кто-нибудь мне помочь в этом?

@Configuration
@Profile("infinispan-standalone")
@EnableCaching
public class InfinispanStandaloneConfig {

    private static final Logger logger = LoggerFactory.getLogger(InfinispanCacheConfiguration.class);

    @Autowired
    @Bean
    public RemoteCacheManager remoteCacheManager(@Value("${infinispan.remote.server-list}") String serverlist,
                                                 @Value("infinispan.admin.user") String user,
                                                 @Value("infinispan.admin.password") String pwd) {
        logger.info("inside the remote cache manager");

        Properties properties = new Properties();
        properties.setProperty("infinispan.client.hotrod.client_intelligence", "BASIC");
        properties.setProperty("infinispan.client.hotrod.marshaller", "org.infinispan.commons.marshall.jboss.GenericJBossMarshaller");

        RemoteCacheManager remoteCacheManager = new RemoteCacheManager(new ConfigurationBuilder().addServers(serverlist).withProperties(properties)
                .security().authentication().username(user).password(pwd)
                .build());
        remoteCacheManager.getCache("cart",true);
        return remoteCacheManager;
    }

    @Bean
    public SpringRemoteCacheManager cacheManager(RemoteCacheManager remoteCacheManager) {
        return new SpringRemoteCacheManager(remoteCacheManager);
    }
}

1 Ответ

0 голосов
/ 18 мая 2018

Вам нужно будет использовать Infinispan 9.2, где вы можете использовать следующее:

remoteCacheManager.administration().getOrCreateCache("cart", "template-name");

при условии, что "template-name" является шаблоном конфигурации, определенным на сервере.Кроме того, вы также можете передать конфигурацию XML для кэша:

String xml = "<infinispan><cache-container><distributed-cache name="cart"><expiration interval="10000" lifespan="10" max-idle="10"/></distributed-cache></cache-container></infinispan>"; remoteCacheManager.administration().getOrCreateCache("cart", new XMLConfiguration(xml));

...