使用tikv-client-java 3.3.5版本访问4.0.xtidb集群,unreachable错误

【 TiDB 使用环境】生产环境
【 TiDB 版本】4.0.x
【遇到的问题:问题现象及影响】
在使用tikv-client-java 3.3.5版本访问4.0.xtidb集群时,会出现健康检查失败以及TiKV store unreachable
健康检查失败:

2023-10-09 16:13:40.279 INFO  org.tikv.common.region.StoreHealthyChecker - fail to check TiKV health, regard as unhealthy. TiKV address: 172.20.216.22:20160
org.tikv.shade.io.grpc.StatusRuntimeException: UNIMPLEMENTED:
	at org.tikv.shade.io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:287)
	at org.tikv.shade.io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:268)
	at org.tikv.shade.io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:175)
	at org.tikv.shade.io.grpc.health.v1.HealthGrpc$HealthBlockingStub.check(HealthGrpc.java:252)
	at org.tikv.common.region.StoreHealthyChecker.checkTiKVHealth(StoreHealthyChecker.java:112)
	at org.tikv.common.region.StoreHealthyChecker.checkStoreHealth(StoreHealthyChecker.java:86)
	at org.tikv.common.region.StoreHealthyChecker.run(StoreHealthyChecker.java:152)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

读取数据时TiKV store unreachable

2023-10-09 16:13:41.487 WARN  org.tikv.common.region.RegionManager - No TiKV store available for region: {Region[28102482] ConfVer[38479] Version[270249] Store[20752437] KeyRange[t\200\000\000\000\000\000\334\360_i\200\000\000\000\000\000\000\001\004\031\252\270\247\037\000\000\000\003\232\000\000\000\001\316\230c]:[t\200\000\000\000\000\000\334\360_i\200\000\000\000\000\000\000\001\004\031\252\270\2478\000\000\000\003\250\000\000\000\001\334\335\346]}
2023-10-09 16:13:41.496 INFO  org.tikv.common.region.RegionManager - Store 20752437 is unreachable, try to get the next replica
2023-10-09 16:13:41.496 WARN  org.tikv.common.region.RegionManager - No TiKV store available for region: {Region[28102482] ConfVer[38479] Version[270249] Store[20752437] KeyRange[t\200\000\000\000\000\000\334\360_i\200\000\000\000\000\000\000\001\004\031\252\270\247\037\000\000\000\003\232\000\000\000\001\316\230c]:[t\200\000\000\000\000\000\334\360_i\200\000\000\000\000\000\000\001\004\031\252\270\2478\000\000\000\003\250\000\000\000\001\334\335\346]}
2023-10-09 16:13:41.504 INFO  org.tikv.common.region.RegionManager - Store 20752437 is unreachable, try to get the next replica

我们这边也遇到了类似问题,楼主的数据量是多少,我们这边10亿+数据,client获取不到数据并且出现unreachable的报错

你在最新的版本的集群上有遇到这个问题吗?

这个问题可能是由以下原因导致的:

  1. 版本兼容性问题:tikv-client-java 3.3.5 版本可能不完全兼容 TiDB 4.0.x 版本的 gRPC 接口。由于 TiDB 在不同版本之间可能会引入一些变化,因此建议您使用与 TiDB 版本匹配的 tikv-client-java 版本,以确保兼容性。
  2. 网络连接问题:健康检查失败和 TiKV store 不可达可能是由于网络连接问题导致的。请确保客户端能够正常访问 TiKV 节点的 IP 地址和端口,并且网络连接稳定。

为了解决这个问题,您可以尝试以下步骤:

  1. 确认版本兼容性:查看 tikv-client-java 的文档或者官方发布的版本兼容性信息,确保您使用的版本与 TiDB 4.0.x 版本兼容。
  2. 检查网络连接:确保客户端能够正常访问 TiKV 节点的 IP 地址和端口。您可以尝试使用其他工具(如 ping 或者 telnet)测试网络连接是否正常。
1 个赞