【问题标题】:Restrict Infinispan Cache to add multiple Nodes in a Cluster限制 Infinispan Cache 在集群中添加多个节点
【发布时间】:2020-10-25 02:29:52
【问题描述】:

我在 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。

【问题讨论】:

    标签: java jboss infinispan jgroups


    【解决方案1】:

    offtopic:如果您不想自己创建和管理 JChannel,Infinispan 会为您创建。 使用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

    【讨论】:

    • 感谢您的评论。我以前这样做过,更改了两个节点的 mcast_addr 但没有运气。顺便说一句,我已经通过使用集群名称解决了这个问题。 manager = new DefaultCacheManager(GlobalConfigurationBuilder.defaultClusteredBuilder() .transport().nodeName(nodeName).clusterName(cacheClusterName) .build());当两台机器在同一个网络上时,它们会互相发送消息,但在找到相同的 clusterName 之前没有人会创建集群。
    • @FasihUrRehman 设置不同的集群名称是可行的,但是当使用具有 UDP 传输的复制缓存时,所有节点都必须从其他集群接收多播消息并丢弃它们。为每个集群设置不同的 mcast_addr 和 mcast_port 更便宜,因为节点只接收来自其集群的消息,对于来自其他集群的消息没有额外的工作。
    • @DanBerindei 我明白了你的意思,但我的情况是我在每个应用程序服务器上有两个应用程序服务器我部署了 2 个不同的应用程序,它们有自己的缓存。所以我想要的是在每个应用程序的 2 个应用程序服务器之间进行集群。因此,我想集群名称会帮助我解决这种情况,但我收到以下消息,
    • [jgroups-24,losci_qa-node-29683] - JGRP000012:来自不同集群 losce_qa 的丢弃消息(我们的集群是 losci_qa)。发件人是 076a2e56-d727-abed-0f78-4e8399bc74c1(在最后 60006 毫秒内从 076a2e56-d727-abed-0f78-4e8399bc74c1 收到了 34 条相同的消息)
    • @DanBerindei 是的,没错!实际上,我正在使用 Jboss 应用程序服务器,并且在 Jboss 中,我在其standalone-ha.xml(配置)文件 jgroups-udp 中有一个套接字绑定,它使用一个 mcast_addr。所以现在,我使用上述配置在 JChannel 中添加 udp.xml 并更改两个应用程序的 mcast_addr,现在日志中不再出现消息。
    猜你喜欢
    • 2013-09-23
    • 2021-07-21
    • 2018-01-08
    • 2015-01-01
    • 2021-09-28
    • 2020-05-18
    • 2013-04-24
    • 2012-02-09
    • 2015-09-08
    相关资源
    最近更新 更多