java.net.SocketTimeoutExceptions 30,000 mliseconds timeout on connection http-outgoing-2 [ACTIVE]
问题
对 es 进行重索引时,由于 索引 里的数据量过大,导致连接超时,报错如标题
使用的 连接工具是 :RestHighLevelClient
解决
1、网上找到的方案都是 重新构造一个 RestHighLevelClient,并给 time-out 赋值,我们系统是直接 注入的 restHighLevelClient 对象,所以不想去 更改 注入逻辑,因此考虑从配置项入手
2、ElasticsearchRestClientProperties 这个对象是 es 的 RestClient 配置类,在该类中发现了 connectionTimeout 及 readTimeout ,尤其是 readTimeout 有个默认值 30 s,感觉就是这个值导致的问题
然后再Springboot的配置项定义文件里发现,有关于这两个值的配置:
在配置文件添加连接超时和读超时后,解决问题
实测发现,配置项的单位是 毫秒,不是文件里说的秒(可能与我没带单位有关)