Ignite.NET两台服务器单节点集群无发现配置自动合并原因咨询
问题解答
1. 第二个节点自动加入首节点集群的原因
Ignite默认使用TcpDiscoveryMulticastIpFinder作为节点发现机制,如果你没有在配置中显式指定发现SPI规则,服务启动后会默认通过多播协议在同网段内搜索其他Ignite节点。你的两台服务器IPx.y.z.220和x.y.z.221属于同一个网段,且网络没有禁止多播报文传输,所以第二个节点启动后会自动扫描到首个节点;又因为两个节点的配置完全一致、默认集群名相同,就会直接加入首个节点的集群。
2. 密码自动同步的原因
你开启身份认证和数据持久化后,Ignite的用户账号、密码等身份信息会作为集群全局元数据存储在持久化存储中,属于整个集群共享的配置。任意节点修改用户密码后,修改操作会同步到集群内所有节点的元数据里,所以第二个节点作为集群的一员,会自动同步修改后的密码,只能用新密码登录。
若需要部署两个独立的单节点集群,可参考以下方案修改配置:
- 显式替换默认的多播发现机制,每个节点单独配置
TcpDiscoveryVmIpFinder,仅填写自身IP作为发现地址,示例配置如下:
<igniteConfiguration xmlns="http://ignite.apache.org/schema/dotnet/IgniteConfigurationSection"> <discoverySpi type="TcpDiscoverySpi"> <ipFinder type="TcpDiscoveryVmIpFinder"> <addresses> <string>x.y.z.220:47500..47509</string> <!-- 填写对应节点自身的IP即可 --> </addresses> </ipFinder> </discoverySpi> <!-- 其余原有配置保持不变 --> </igniteConfiguration>
- 也可以为两个节点设置不同的
igniteConfiguration下的clusterName属性,就算节点能互相发现,也不会加入不同名的集群。
内容的提问来源于stack exchange,提问作者Lior
相关产品推荐
相关产品推荐

