Java操作tikv集群报错

使用 tikv-client-java 操作tikv集群 ,开始很正常,能够正常的操作tikv集群,但之后突然无法连接,报错如下
Caused by: java.lang.IllegalArgumentException: null
at org.tikv.shade.com.google.common.base.Preconditions.checkArgument(Preconditions.java:127)
at org.tikv.common.codec.Codec$BytesCodec.readBytes(Codec.java:316)
at org.tikv.common.codec.Codec$BytesCodec.readBytes(Codec.java:283)
at org.tikv.common.region.TiRegion.decodeRegion(TiRegion.java:103)
at org.tikv.common.region.TiRegion.(TiRegion.java:65)
at org.tikv.common.PDClient.getRegionByKey(PDClient.java:250)
at org.tikv.common.region.RegionManager$RegionCache.getRegionByKey(RegionManager.java:278)
at org.tikv.common.region.RegionManager.getRegionStorePairByKey(RegionManager.java:149)
at org.tikv.common.region.RegionManager.getRegionStorePairByKey(RegionManager.java:144)
at org.tikv.common.region.RegionStoreClient$RegionStoreClientBuilder.build(RegionStoreClient.java:1310)
at org.tikv.common.region.RegionStoreClient$RegionStoreClientBuilder.build(RegionStoreClient.java:1305)
at org.tikv.raw.RawKVClient.get(RawKVClient.java:245)

太高端了,没玩过 :grinning:

确保 tikv-client-java 版本与 TiKV 集群的版本兼容

请补充client-java版本,外加tikv版本信息。

至少目前github上的master分支是看不到org.tikv.shade这个包的。而且异常堆栈的下一行Codec.java:316
https://github.com/tikv/client-java/blob/master/src/main/java/org/tikv/common/codec/Codec.java#L316
直接是个}

大概率,你只要用对client版本,问题就解决了。楼上的解决方案是值得尝试的。

下次提问时可以把tikv,client java的版本都带上,不然只有部分报错,无法合理判断的。
还有再看下tikv的log

学到了

tikv集群版本 v5.0.1 tikv-client-java 版本 3.1.0 我是一个月前就开始用Java操作集群了,一开始没有任何问题,昨天突然间这样了

tikv集群版本 v5.0.1 tikv-client-java 版本 3.1.0 我是一个月前就开始用Java操作集群了,一开始没有任何问题,昨天突然间这样了

其他的操作正常么?

现在不行了 调用get和put方法都会报这个错

本地测试环境么?看看资源还够用不,再查查tikv的log有什么报错没有


pd.log 里只有一些警告信息 服务器资源我看了也没问题

tikv 的log日志也是只有info信息

failed to get tidb schema version

pd 的网络发生了什么变化么?

ping 了一下pd的服务器地址 一直都是这样
1

那你要判断下集群是否正常了…

看起来是 网络和 PD 的处理性能不够…


使用命令集群状态正常

看你集群信息的截图 pd leader 在 87 上了,而不是 80

1 个赞

那这种情况怎么解决

pd leader 可以手动切换