猿问

Apache Ignite 2.6 无限循环将客户端连接到服务器

当我启动客户端节点并连接到服务器时,我在服务器日志中得到无限循环的消息


|[2018.08.21 17:01:22.997]|INFO |r-tcp-comm-1-#26|TcpCommunicationSpi           | Accepted incoming communication connection [locAddr=/10.144.193.157:48100, rmtAddr=/10.144.13.223:46208]

|[2018.08.21 17:01:22.999]|INFO |r-tcp-comm-1-#26|TcpCommunicationSpi           | Received incoming connection from remote node while connecting to this node, rejecting [locNode=ce9b6147-671b-4351-a142-d251a1362920, locNodeOrder=1, rmtNode=866f0d34-8d0c-48a7-809a-a89aeaf0e7f4, rmtNodeOrder=3]

我的客户端配置


        IgniteConfiguration igniteConfiguration = new IgniteConfiguration();

        igniteConfiguration.setClientMode(true);

        igniteConfiguration.setPeerClassLoadingEnabled(true);


        TcpCommunicationSpi cspi = new TcpCommunicationSpi();

        cspi.setSocketWriteTimeout(60000);


        TcpDiscoverySpi dspi = new TcpDiscoverySpi();

        TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();

        ipFinder.setAddresses(Collections.singletonList(igniteHost + ":" + ignitePorts));

        dspi.setIpFinder(ipFinder);


        igniteConfiguration.setDiscoverySpi(dspi);

        igniteConfiguration.setCommunicationSpi(cspi);


有时(在快速关闭并启动客户端应用程序后)客户端连接到服务器没有问题。如果阻止 (oldFut instanceof ConnectFuture && locNode.order() < rmtNode.order())反向连接,我在TcpConnectSpi 中被罚款。在TcpConnectionSpi 中,我看到只有当 oldFut 为空时我才会连接,当这是第一次连接到服务器时 oldFut 可以为空,但在另一个块中早期是 init oldFut 链接对象。如何创建稳定的客户端到服务器的连接?


PS我使用spring boot 2.0.3和ignite 2.6.0。Ignite bean 以 Ignition.start(cfg) 开头。


MM们
浏览 299回答 3
3回答

UYOU

我们使用 2.6.0 和 2.3.0 版本测试我们的配置。在 2.3.0 这个配置工作正常。在分析 repo 之后,我们发现了一些对 TcpCommunicationSpi 类的提交,这些提交改变了一些进行通信连接的方法。我们继续使用 2.3.0 版本作为更稳定的版本。

慕勒3428872

这些消息通常表明您有网络拓扑问题。确保两个客户端都可以连接到服务器端口,并且服务器可以连接到客户端端口。
随时随地看视频慕课网APP

相关分类

Java
我要回答