我在我的java项目中使用了Jboss中的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());
但问题是,每当我使用上面的配置时,它都会自动检测所有节点并将其添加到集群中,这是我不想要的。我如何限制这一点;不添加集群中的所有节点。
蒂娅。
发布于 2020-07-05 09:25:17
offtopic:如果你不想自己创建和管理JChannel
,Infinispan会为你创建它。使用GlobalConfigurationBuilder.defaultClusteredBuilder()
。你可以在这里找到英菲尼斯潘的配置: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
https://stackoverflow.com/questions/62731095
复制