Узлы Apache Ignite не могут кластеризоваться - проблема связи - PullRequest
0 голосов
/ 08 мая 2019

Недавно мы начали создавать тестовый кластер Ignite и столкнулись с проблемами обнаружения TCP. Несколько ответов на похожие вопросы, обсуждаемые на этом форуме, не дали ответа на мой запрос. В нашей тестовой системе есть два узла Debian в разных подсетях без заблокированных портов, и каждый узел запускает Ignite, как и ожидалось; все типичные используемые порты были проверены с помощью Curl, и мы не видим там никаких проблем. Кроме того, эти узлы используют кластер Cassandra для постоянной базы данных, и мы убедились, что нет проблем с загрузкой данных в кэш Ignite на каждом узле. Версия Ignite, которую мы исследуем, - «apache-ignite-2.8.0», а обнаружение TCP - через TcpDiscoveryVmIpFinder.

На обоих узлах зажигания отображается следующая ошибка «Отказано в соединении»; журнал не содержит информации (даже после включения опции DEBUG для журналов) относительно IP-адреса соединения. Используя netstat -lntpa, мы наблюдали, что никакие соединения не проходят от одного узла к другому.

[ERROR][main][TcpDiscoverySpi] Exception on direct send: Connection refused (Connection refused)
java.net.ConnectException: Connection refused (Connection refused)
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
   at java.net.Socket.connect(Socket.java:589)
   at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.openSocket(TcpDiscoverySpi.java:1538)
   at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.openSocket(TcpDiscoverySpi.java:1500)
   at org.apache.ignite.spi.discovery.tcp.ServerImpl.sendMessageDirectly(ServerImpl.java:1307)
   at org.apache.ignite.spi.discovery.tcp.ServerImpl.sendJoinReq`enter code here`uestMessage(ServerImpl.java:1142)
   at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:955)
   at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:422)
   at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2065)
   at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:297)
   at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:940)
   at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1736)
   at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1080)
   at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1992)
   at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1683)
   at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1109)
   at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1027)
   at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:913)
   at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:812)
   at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:682)
   at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:651)
   at org.apache.ignite.Ignition.start(Ignition.java:346)
   at com.procurant.common.ignite.CommandLineStartup.startIgnite(CommandLineStartup.java:17)
   at com.procurant.common.ignite.CommandLineStartup.main(CommandLineStartup.java:82)

Файл конфигурации Ignite имеет следующие параметры для одного из узлов: (значения времени ожидания не сыграли существенной роли, ошибка без них одинакова)

<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
   <!-- Initial local port to listen to. -->
   <property name="localPort" value="45500" />
   <!-- Changing local port range. This is an optional action. -->
   <!-- Default jointTimeout=0 means wait for ever -->
   <property name="localPortRange" value="20" />
   <property name="networkTimeout" value="10000" />
   <property name="socketTimeout" value="30000" />
   <property name="joinTimeout" value="30000" />
   <property name="reconnectCount" value="5" />
   <property name="ackTimeout" value="10000" />
   <property name="ipFinder">
     <!-- Uncomment static IP finder to enable static-based discovery of initial nodes. -->
     <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
     <!--<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">-->
       <property name="addresses">
         <list>
           <!-- In distributed environment, replace with actual host IP address. -->
           <value>10.10.0.91:45500..45520</value>
         </list>
       </property>
     </bean>
   </property>
 </bean>

Любая помощь и предложение приветствуются для решения наших проблем.

Спасибо!

...