长时间没有请求es,请求后报错:: 30,000 milliseconds timeout on connection http-outg

时间:2025-03-18 21:33:44

1. jar版本

elasticsearch-rest-high-level-client 7.12.1

2. 问题

SpringBoot项目启动后,长时间没有进行接口调用(没有执行es请求),突然进行接口调用时(es请求)报错

2022-05-06 13:10:57.342 ERROR 30118 --- [io-10000-exec-9]     : 出现未知异常:: 30,000 milliseconds timeout on connection http-outgoing-10 [ACTIVE]
: 30,000 milliseconds timeout on connection http-outgoing-7 [ACTIVE]

...
...

Caused by: : 30,000 milliseconds timeout on connection http-outgoing-7 [ACTIVE]
        at (:387)
        at (:92)
        at (:39)
        at (:175)
        at (:261)
        at (:502)
        at (:211)
        at (:280)
        at (:104)

3. 目前的处理方式(未验证)

        RestClientBuilder rclientBuilder = (new HttpHost(esConfig.getNode1Ip(), esConfig.getNode1Port(), esConfig.getNode1Scheme())
                .setHttpClientConfigCallback(new () {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                        return httpClientBuilder
                                .setKeepAliveStrategy((response, context) -> (5).toMillis());
                    }
                });
        restHighLevelClient = new RestHighLevelClient(rclientBuilder);

通过添加配置:

((response, context) -> (5).toMillis());

来保持client 每 5分钟 发送数据保持http存活

4. 参考博客

  1. /a18100171871/article/details/112272852?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-112272852-blog-112541581.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-112272852-blog-112541581.pc_relevant_default&utm_relevant_index=2

  2. /developer/article/1943055