ES 30s 超时报错

java.net.SocketTimeoutExceptions 30,000 mliseconds timeout on connection http-outgoing-2 [ACTIVE]

问题

对 es 进行重索引时,由于 索引 里的数据量过大,导致连接超时,报错如标题
使用的 连接工具是 :RestHighLevelClient


错误日志

解决

1、网上找到的方案都是 重新构造一个 RestHighLevelClient,并给 time-out 赋值,我们系统是直接 注入的 restHighLevelClient 对象,所以不想去 更改 注入逻辑,因此考虑从配置项入手


构造RestHighLevelClient对象

2、ElasticsearchRestClientProperties 这个对象是 es 的 RestClient 配置类,在该类中发现了 connectionTimeout 及 readTimeout ,尤其是 readTimeout 有个默认值 30 s,感觉就是这个值导致的问题


ElasticsearchRestClientProperties

然后再Springboot的配置项定义文件里发现,有关于这两个值的配置:


spring-configuration-metadata.json

在配置文件添加连接超时和读超时后,解决问题
实测发现,配置项的单位是 毫秒,不是文件里说的秒(可能与我没带单位有关)


application.yml
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ElasticSearch 1.什么是ElasticSearch Elasticsearch是用Java语言开发的...
    袁小胜阅读 810评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,082评论 19 139
  • 前言 Spring Cloud 作为微服务解决方案 全家桶,集合了丰富的微服务组件,如Gateway、Feign、...
    亦山札记阅读 8,393评论 1 14
  • 集成的方式有很多,采用哪种方式好呢?这是我这这段是时间一直在做和考虑的问题。 先介绍一下背景。首先我们之前一直用的...
    you_lys阅读 5,345评论 1 1
  • 这是最近读到的讲关于 JDBC 的超时问题最透彻的文章,原文是http://www.cubrid.org/blog...
    预流阅读 11,603评论 4 19