Amazon ec2 Apache Ignite静态IP节点发现

Amazon ec2 Apache Ignite静态IP节点发现,amazon-ec2,ignite,Amazon Ec2,Ignite,我正在构建一个ApacheIgnite集群,它使用静态IP发现而不是多播IP发现(在AWSEC2中) 我已经这样配置了(): ignite的默认端口为47500,但在日志中,您可以看到它尝试连接到47501: 尝试在地址列表中指定端口: <value>host1.example.com:47500</value> host1.example.com:47500 还可以查看此文档:它在您的情况下很有用。首先,我建议将Ignite从1.6更新为1.9 第二,按照建议指定端

我正在构建一个ApacheIgnite集群,它使用静态IP发现而不是多播IP发现(在AWSEC2中)

我已经这样配置了():


ignite的默认端口为47500,但在日志中,您可以看到它尝试连接到47501:

尝试在地址列表中指定端口:

<value>host1.example.com:47500</value>
host1.example.com:47500

还可以查看此文档:它在您的情况下很有用。

首先,我建议将Ignite从1.6更新为1.9

第二,按照建议指定端口

使用--net=host运行docker,这样容器内的应用程序将看到来自主机的网络接口。这应该会有所帮助


此外,还可以在DiscoverySPI上配置setLocalAddress和setLocalPort

<!-- Initial local port to listen to. -->
        <property name="localPort" value="yourport"/>
    <!-- Initial local address for discovery . -->
        <property name="localAddress" value="yourhost"/>

        <!-- Changing local port range. This is an optional action. -->
        <property name="localPortRange" value="20"/>

并使用在IPFinder上指定的地址列表中的相同端口

<bean 
 class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                    <property name="addresses">
                        <list>
                            <value>yourhost:yourport</value>
                            <value>otherhost:otherhostport</value>
                        </list>
                    </property>
                </bean>

主持人:你的端口
其他主机:其他主机端口

好的,所有这些都应该与TCPVmIPfinder一起工作

尽管我之前的回答中有设置,但如果它不工作,则可能是因为您的IP不稳定。 根据点火文件 AWS云上的节点发现通常更具挑战性。与大多数其他虚拟环境一样,Amazon EC2也有以下限制:

多播已禁用。 每次启动新映像时,TCP地址都会更改。 尽管您可以在没有多播的情况下使用基于TCP的发现,但您仍然需要处理不断变化的IP地址和不断更新的配置。这造成了极大的不便,并使得基于静态IP的配置在此类环境中几乎不可用。 有关基于Amazon S3的发现,请参阅此链接

我已经试过了,没有什么不同。我想47501指的是当地的港口。AWS部署文档指的是使用S3存储桶代替多播发现(在AWS EC2中禁止多播),这不是我想要的。您可以共享完整的ignite日志吗?添加到原始post的日志提供来自节点的完整日志,因此可以找到绑定了哪些地址和端口节点。添加到原始post的日志
<!-- Initial local port to listen to. -->
        <property name="localPort" value="yourport"/>
    <!-- Initial local address for discovery . -->
        <property name="localAddress" value="yourhost"/>

        <!-- Changing local port range. This is an optional action. -->
        <property name="localPortRange" value="20"/>
<bean 
 class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                    <property name="addresses">
                        <list>
                            <value>yourhost:yourport</value>
                            <value>otherhost:otherhostport</value>
                        </list>
                    </property>
                </bean>