限制Infinispan缓存在集群中添加多个节点

时间:2020-07-04 15:40:24

标签: java jboss infinispan jgroups

我在Jboss中为我的Java项目使用Infinispan缓存。 我有两个在不同机器上运行的Jboss节点。我已经成功配置了infinispan缓存,该缓存可以在两个节点之间复制其数据。 以下是我的infinispan缓存配置:

GlobalConfigurationBuilder global = new GlobalConfigurationBuilder();
JChannel jchannel = new JChannel();
JGroupsTransport transport = new JGroupsTransport(jchannel);
global.transport().transport(transport);
manager = new DefaultCacheManager(global.build());
ConfigurationBuilder c = new ConfigurationBuilder();
c.clustering().cacheMode(CacheMode.DIST_SYNC).hash().numOwners(numOwners).numSegments(numSegments).capacityFactor(capacityFactor).build();
c.invocationBatching().enable();
c.transaction().transactionMode(TransactionMode.TRANSACTIONAL).lockingMode(LockingMode.PESSIMISTIC);
manager.defineConfiguration(DIST, c.build());

但是问题是每当我使用上述配置时,它就会自动检测所有节点并将其添加到我不想要的集群中。我该如何限制呢?不添加集群中的所有节点。

TIA。

1 个答案:

答案 0 :(得分:1)

离题:如果您不想自己创建和管理它,Infinispan会为您创建JChannel。 使用GlobalConfigurationBuilder.defaultClusteredBuilder()。 您可以在这里找到Infinispan的配置:https://infinispan.org/docs/stable/titles/configuring/configuring.html#cluster_transport

要解决您的问题,您需要更改JGroups配置。如果您使用的是UDP + PING组合(最有可能),只需更改UDP mcast_addr和/或mcast_port属性即可创建单独的群集。

查看JGroups的文档以获取更多信息:http://www.jgroups.org/manual4/index.html#DiscoveryProtocols