Apache Ignite org.apache.ignite.internal.client.thin.ClientProtocolError "Invalid response size" and



我在同一台服务器上有一个dockerized ignite实例和一个Dockenized java程序。Ignite有一个由配置xml定义的缓存,java通过瘦客户端连接到它,缓存由另一个服务填充。java只做一个获取点火来获取键值。

一切都如预期的那样工作,有时会出现这种错误,重新创建java docker解决了它。今天,java开始每次都显示这种错误,在一些负载下运行几秒钟后出现,我无法解决它。已经尝试清空缓存或停止填充它的服务。

例外情况如下:

org.apache.ignite.internal.client.thin.ClientProtocolError: Unexpected response ID [4595132326738094176]
at org.apache.ignite.internal.client.thin.TcpClientChannel.processNextResponse(TcpClientChannel.java:284)
at org.apache.ignite.internal.client.thin.TcpClientChannel.receive(TcpClientChannel.java:234)
at org.apache.ignite.internal.client.thin.TcpClientChannel.service(TcpClientChannel.java:171)
at org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:180)
at org.apache.ignite.internal.client.thin.ReliableChannel.affinityService(ReliableChannel.java:242)
at org.apache.ignite.internal.client.thin.TcpClientCache.cacheSingleKeyOperation(TcpClientCache.java:509)
at org.apache.ignite.internal.client.thin.TcpClientCache.get(TcpClientCache.java:111)
at com.abc.rtpm.RtpmClient.getPrice(RtpmClient.java:63)
org.apache.ignite.internal.client.thin.ClientProtocolError: Invalid response size: -1476395008
at org.apache.ignite.internal.client.thin.TcpClientChannel.processNextResponse(TcpClientChannel.java:275)
at org.apache.ignite.internal.client.thin.TcpClientChannel.receive(TcpClientChannel.java:234)
at org.apache.ignite.internal.client.thin.TcpClientChannel.service(TcpClientChannel.java:171)
at org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:180)
at org.apache.ignite.internal.client.thin.ReliableChannel.affinityService(ReliableChannel.java:242)
at org.apache.ignite.internal.client.thin.TcpClientCache.cacheSingleKeyOperation(TcpClientCache.java:509)
at org.apache.ignite.internal.client.thin.TcpClientCache.get(TcpClientCache.java:111)
at com.abc.rtpm.RtpmClient.getPrice(RtpmClient.java:63)

客户端由以下代码创建:

this.cfg = new ClientConfiguration().setAddresses(clientHost + ":" + clientPort);
try {
this.igniteClient = Ignition.startClient(this.cfg);
this.cache = this.igniteClient.getOrCreateCache("rtpm");
}
catch (ClientException e) {
System.err.println(e.getMessage());
}
catch (Exception e){
System.err.format("Unexpected failure: %sn", e);
}

有几个线程同时调用get。

非常感谢您的帮助。

我认为您使用了错误的端口。您应该使用10800ClientConnectorConfiguration指定的端口。

尽管在瘦客户端文档中它表示支持多线程,但它似乎无法承载负载。

我用一个普通客户解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新