使用Elasticsearch 8.16客户端向7.17集群批量写入时丢数据并报SocketTimeoutException问题求助
Elasticsearch 8.16客户端向7.17集群批量写入时丢数据并报SocketTimeoutException问题求助
大家好,最近我们在生产环境碰到了一个棘手的问题,想请社区的各位帮忙分析排查下:
环境配置对比
我们用两组几乎一致的配置对接Elasticsearch集群,结果运行状态天差地别:
- 引发生产故障的配置:
- Java版本:JDK 17
- Elasticsearch客户端版本:8.16
- Elasticsearch集群版本:7.17
这套配置部署后,生产环境出现严重故障,相关集成服务完全不可用长达2天,最后只能通过回滚代码暂时解决问题。
- 运行正常的配置:
- Java版本:JDK 11
- Elasticsearch客户端版本:8.16
- Elasticsearch集群版本:7.17
换成这套配置后,所有服务运行顺畅,没有出现任何异常。
排查到的错误日志
经过长时间调试,我们定位到了对应的错误日志(注:堆内存使用完全正常,已排除堆相关问题):
2025-06-07 07:03:29.839 DEBUG 744 --- [ient-0-thread-9] org.elasticsearch.client.RestClient : request [POST https://clustername:443/_bulk] failed java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-391 [ACTIVE] at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.timeout(HttpAsyncRequestExecutor.java:387) at org.apache.http.impl.nio.client.InternalIODispatch.onTimeout(InternalIODispatch.java:98) at org.apache.http.impl.nio.client.InternalIODispatch.onTimeout(InternalIODispatch.java:40) at org.apache.http.impl.nio.reactor.AbstractIODispatch.timeout(AbstractIODispatch.java:175) at org.apache.http.impl.nio.reactor.BaseIOReactor.sessionTimedOut(BaseIOReactor.java:261) at org.apache.http.impl.nio.reactor.AbstractIOReactor.timeoutCheck(AbstractIOReactor.java:506) at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:211) at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:280) at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591) at java.base/java.lang.Thread.run(Thread.java:833) 2025-06-07 07:03:29.839 DEBUG 744 --- [ient-0-thread-9] org.elasticsearch.client.RestClient : updated [[host=https://505e6c4b56953250650fe014e9230a04.ece.sgmonitoring.prd.euw.gbis.sg-azure.com:443]] already in blacklist
目前我们的核心疑问是:为什么仅仅将JDK版本从11升级到17,就会导致Elasticsearch客户端的批量写入请求频繁触发SocketTimeoutException,进而引发生产级故障?有没有朋友遇到过类似问题,或者有排查思路可以分享的?
内容来源于stack exchange
相关产品推荐
相关产品推荐

