cluster-computing - Ignite网络接口(interface)配置,通过指定网络接口(interface)集群

标签 cluster-computing gridgain in-memory ifconfig ignite

我在配置了多个网络接口(interface)的盒子上运行 Ignite 集群。我有 3 个不同速度的不同网络接口(interface)。

我看到 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 集群配置为仅使用其中一个网络接口(interface)进行通信。

我有这个 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 服务器绑定(bind)并监听盒子上的所有网络接口(interface)。在 xml 配置中,我只给出了 1 个网络接口(interface)地址,但是在节点加入消息中,我看到了所有其他网络接口(interface)的 IP 地址。

最佳答案

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>

关于cluster-computing - Ignite网络接口(interface)配置,通过指定网络接口(interface)集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32588675/

相关文章:

r - 有没有办法在 R 中读写内存文件?

jboss7.x - JBAS010153 : Node identifier property is set to the default value. 请确保它是唯一的

hadoop - Hadoop-MapReduce集群中此数据存储库的大小不断增加

hadoop - 如何在GridGain内存加速器中获取Hadoop内置计数器?

java - 如何通过 GridLogger 将日志存储到文件中?

rust - 如何创建一个可以用作Rust中的Reader,Writer或Seek的内存对象?

java - Trimmomatic 不确认 Linux 集群上的命令

java - Spark spark-submit --jars arguments 想要逗号列表,如何声明一个 jars 目录?

ignite - Apache Ignite 与 GridGain?

python - 如何专门使用 Elasticsearch 索引 "in-memory"?