繁体   English   中英

无法连接到AWS EC2上的Apache Ignite群集-Ignite服务器拒绝客户端

[英]Can't connect to Apache Ignite Cluster on AWS EC2 - Ignite server rejects clients

我在连接到Ignite群集时遇到问题。 我在AWS EC2上有2个节点,并且使用基于AWS S3的发现。 Ignites节点启动时没有错误,我看到启动Ignite后新对象如何出现在S3存储桶中。 在AWS Securuty组中,我打开了所有TCP端口,以便期望任何人都可以连接到集群。

但是我得到org.apache.ignite.client.ClientConnectionException: Ignite cluster is unavailable当我尝试从计算机连接时(我尝试从IDE运行简单的JUnit测试), org.apache.ignite.client.ClientConnectionException: Ignite cluster is unavailable异常。

我使用以下配置:

    <property name="addressResolver">
        <bean class="org.apache.ignite.configuration.BasicAddressResolver">
            <constructor-arg>
                <map>
                    <entry key="EC2 internal IP" value="EC2 public ip"/>
                </map>
            </constructor-arg>
        </bean>
    </property>

    <property name="discoverySpi">
        <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
            <property name="ipFinder">
                <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.s3.TcpDiscoveryS3IpFinder">
                    <property name="awsCredentials" ref="reference to another bean with aws creds"/>
                    <property name="bucketName" value="MY_BUCKET_NAME"/>
                </bean>
            </property>
        </bean>
    </property>

这里的问题是服务器拒绝任何连接尝试,因为当我启动Ignite客户端(不是瘦客户端)时,我在日志中看到以下图片: 在此处输入图片说明

如您所见,客户端的数量等于0,然后等于1、0和1等等。因此,我想,客户端可以到达群集,但是为什么拒绝它们呢?

我解决了这个问题。 似乎有一条规则:如果您在Ignite群集中使用基于AWS S3的发现,则Ignite客户端节点也应使用相同的方法。 这对我来说并不明显。

根据官方文件

TcpDiscoverySpi spi = new TcpDiscoverySpi();

BasicAWSCredentials creds = new BasicAWSCredentials("yourAccessKey", "yourSecreteKey");

TcpDiscoveryS3IpFinder ipFinder = new TcpDiscoveryS3IpFinder();
ipFinder.setAwsCredentials(creds);
ipFinder.setBucketName("yourBucketName");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM