点燃瘦客户端自动重新连接不起作用

时间:2018-08-01 07:50:49

标签: c# ignite

在一台机器上的配置: 我有一个服务器节点

<ignite xmlns="http://ignite.apache.org/schema/dotnet/IgniteConfigurationSection" gridName="myGrid1">
<clientConnectorConfiguration port="10800"/>    
<discoverySpi type="TcpDiscoverySpi" localPort='48500' localPortRange='1'>
  <ipFinder type="TcpDiscoveryStaticIpFinder">
    <endpoints>
      <string>127.0.0.1:48500</string>
    </endpoints>
  </ipFinder>
</discoverySpi>
<communicationSpi type='TcpCommunicationSpi' localPort='48100' />

瘦客户端节点:

Ignition.StartClient(new IgniteClientConfiguration { Host = "127.0.0.1", Port = 10800})

因此,我正在尝试进行下一个测试: 1)关闭服务器节点 2)重新启动服务器节点 3)检查从客户端节点到服务器节点的连接

问题出在我调用方法的两步之后

ignite.GetCache<long,Entity>("cacheName").TryGet(id, out item)

我有例外

  

System.IO.IOException:无法将数据写入传输连接:远程主机强行关闭了现有连接。    ---> System.Net.Sockets.SocketException:远程主机在System.Net.Sockets.NetworkStream.Write(Byte [] buffer,Int32 offset,Int32 size)强制关闭了现有连接      ---内部异常堆栈跟踪的结尾---在System.Net.Sockets.NetworkStream.Write(Byte []缓冲区,Int32偏移量,Int32大小    在Apache.Ignite.Core.Impl.Client.ClientSocket.SendRequest(RequestMessage&reqMsg)处,在Apache.Ignite.Core.Impl.Client.ClientSocket.DoOutInOp [T](ClientOp opId,Action 1 writeAction, Func 2 readFunc,Func { {1}} 2.DoOutInOp [T](ClientOp opId,Action 3 errorFunc) at Apache.Ignite.Core.Impl.Client.Cache.CacheClient 2 readFunc    在Apache.Ignite.Core.Impl.Client.Cache.CacheClient`2.TryGet(TK键,电视和值)处

1 个答案:

答案 0 :(得分:3)

恐怕.Net瘦客户端不支持自动重新连接。

从源代码中立即创建一次Client,然后立即创建一次握手。看不到重新连接代码。 Apache Ignite JIRA中有一个关于故障转移功能的issue filed:不仅重新连接,还尝试其他节点地址。

这意味着您将必须检查断开连接并手动重新连接。