在一台机器上的配置: 我有一个服务器节点
<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,Action3 errorFunc) at Apache.Ignite.Core.Impl.Client.Cache.CacheClient
2 readFunc 在Apache.Ignite.Core.Impl.Client.Cache.CacheClient`2.TryGet(TK键,电视和值)处
答案 0 :(得分:3)
恐怕.Net瘦客户端不支持自动重新连接。
从源代码中立即创建一次Client,然后立即创建一次握手。看不到重新连接代码。 Apache Ignite JIRA中有一个关于故障转移功能的issue filed:不仅重新连接,还尝试其他节点地址。
这意味着您将必须检查断开连接并手动重新连接。