Elasticsearch 5.6.15客户端兼容的服务端版本咨询
Elasticsearch 5.6.15客户端兼容的服务端版本说明
核心结论
Elasticsearch 5.6.15版本的客户端(包括你使用的TransportClient)仅兼容Elasticsearch 5.x系列服务端,最优选择是匹配完全一致的5.6.15版本,也可以兼容5.6.x的小版本更新(如5.6.16)。
为什么连接7.17.18会失败
- 跨大版本协议不兼容:Elasticsearch的客户端与服务端通信协议在大版本迭代(如5.x→7.x)中发生了根本性变化,跨大版本的客户端和服务端无法正常完成握手与通信,这是你遇到
handshake_timeout错误的核心原因。 - 客户端已被废弃:
TransportClient在Elasticsearch 7.x版本已被标记为废弃,7.x及以上版本推荐使用RestHighLevelClient,服务端甚至可能默认关闭了TransportClient依赖的TCP 9300端口,进一步加剧连接失败。 - 端口使用错误:你的代码中尝试用
TransportClient连接HTTP端口9200,但TransportClient本质是TCP客户端,应该连接ES集群的TCP通信端口9300,这也是导致超时的直接诱因之一。
额外建议
如果需要连接7.17.18版本的服务端,必须:
- 升级客户端依赖到7.17.x版本(建议与服务端版本完全一致)
- 替换
TransportClient为RestHighLevelClient,并通过HTTP端口9200进行连接
内容的提问来源于stack exchange,提问作者Peter Penzov
相关产品推荐
相关产品推荐

