,小编最近在生产上遇到一个问题,解决完后立马总结一下分享给大家,希望可以帮助到大家哈!,事情是这样的,奇怪的现象,公司搭建的ElasticSearch,本来是用来提高检索效率的,最近出现报错了!,版本配置什么都没变,奇怪的很!,ElasticSearch版本为7.6,问题:每隔几个小时就会查询不到,与ElasticSearch连接不上,刷新后查询正常报错为:java.io.IOException: Connection reset by peer,拿着条件去kibana是可以查询到的;,这个客户端是长链接,服务端过期后自动关闭链接,客户端继续用原来的链接导致错误的!,下面我们来详细说一下报错原因和解决方案哈:,上面也是说了原因,但是不太详细,下面详细说一下原因哈!,ES会设置一个策略来进行链接时间的控制,设置此连接的空闲持续时间!,我们可以看一下这个策略:,这个我们不配置会走这个策略,默认-1为长链接,可循环重复使用、,服务器的TCP时间,我们可以查看一下:,,这里就是12分钟,我们需要让客户端的链接时间小于服务器的keepalive时间!,这样客户端超过时间后就会重新获取新链接,确保不会报错哈!!,编写ElasticsearchProperties ,获取nacos上的信息,方便修改!,编写RestHighLevelClient配置类,使用我们的策略,看到其他教学还是使用以前的连接方式,现在RestClientBuilder里的RestClientBuilder是自动构建连接的!,这里我们把RestClientBuilder注入,继续放里面放新策略即可!,由于我们重写RestHighLevelClient,它又依赖RestClientBuilder,原来RestClientBuilder会自动获取用户名密码、连接地址,现在我们需要把用户名密码重新赋值一下哈!这样就可以少一步输入地址的哈!,这里设置10分钟,没有超过12分钟!,看一下配置文件:,,方案二:,如果不介意的话可以把错误捕获起来,重新调用一下,第二次就会重新建立连接,这样就不会有问题了,不过这种不太建议!!
文章版权声明
1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/20189.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别