3

我在配置了多个网络接口的机器上运行 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 地址。

4

1 回答 1

1

Ignite 要求每个节点上有两个端口可用:一个用于发现(默认为 47500),另一个用于通信(默认为 47100)。有关更详细的说明,请参阅此链接:https ://mail-archives.apache.org/mod_mbox/incubator-ignite-dev/201504.mbox/%3CCABuYRcqGRB2_3Y7niHShz=icHVVr5d8PVmdwug=oOwHVSXA4SA@mail.gmail.com%3E

共享内存通信使用端口 48100,它比传统 TCP 通信工作得更快,但仅适用于在同一物理机器上运行的节点。此功能是可选的,可以通过设置-1为共享内存通信端口来禁用:

<property name="communicationSpi">
    <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
        <property name="sharedMemoryPort" value="-1"/>
    </bean>
</property>
于 2015-09-15T23:03:52.463 回答