我在配置了多个网络接口的机器上运行 Ignite 集群。我有 3 个不同速度的不同网络接口。
我看到 Ignite 找到 3 个 IP 地址
INFO: Non-loopback local IPs: xxx, yyy, zzz
然后
INFO: Successfully bound to TCP port [port=47100,locHost=0.0.0.0/0.0.0.0]
和
INFO: Successfully bound to TCP port [port=47500, localHost=0.0.0.0/0.0.0.0]
和
>>> Local node addresses: [Server1/xxx, Server1/yyy, Server1/zzz, /127.0.0.1]
>>> Local ports: TCP:47100 TCP:47500 TCP:48100
我想将 Ignite 集群配置为仅使用其中一个网络接口进行通信。
我有这个 Ignite xml 网络配置
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration" parent="base-ignite.cfg">
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses">
<list>
<value>box1:47500</value>
<value>box2:47500</value>
<value>box3:47500</value>
<value>box4:47500</value>
....
...
..
.
</list>
</property>
</bean>
</property>
</bean>
</property>
</bean>
当一个节点加入时我发现
INFO: Added new node to topology: TcpDiscoveryNode [id=cb61c90f-6a8d-4c4a-81dc-7994b5e5fd80, addrs=[box1-xxx,box1-yyy, box1-yyy, 127.0.0.1], sockAddrs=[/box1-xxx:47500, /box1-xxx:47500, /box1-yyy:47500, /box1-yyy:47500, /box1-zzz:47500, /box1-zzz:47500, /127.0.0.1:47500], discPort=47500, order=2, intOrder=2, lastExchangeTime=1442308257191, loc=false, ver=1.5.0#20150911-sha1:b736c46f, isClient=false]
所以 Ignite 服务器绑定并监听盒子上的所有网络接口。在 xml 配置中,我只给出了 1 个网络接口的地址,但是在节点加入消息中,我看到了所有其他网络接口的 IP 地址。