elasticsearch “达到空闲超时”和“没有活动节点,所有的1节点似乎都关闭了”

w8f9ii69  于 2023-10-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(321)

我们有elasticsearch 8.7集群,一个master和三个node是数据。
php配置

stream timeout => 10 mins

官方客户端示例化https://github.com/elastic/elasticsearch-php

ClientBuilder::create()
   ->setHttpClientOptions([
      'no_proxy' => true,
      'proxy' => '',
   ])       
   ->setHosts(["http://elastichost:9200"])->build();

这里有个问题
如果我们在每个节点上放置20个分片,脚本运行良好,并在几个小时后成功。我们有最新的指数,一切都很好
但是如果我们在每个节点上放置几个分片(1,2,5),脚本会在10分钟后失败。测试代码显示,根据stream_timeout,我们超过了10分钟的超时时间,并显示错误消息,例如“不存在活动节点”。
调查代码

当脚本确定主机已死亡时,尝试执行ping操作,但未成功

->setNodePool(
          new SimpleNodePool(
             new RoundRobin(),
             new ElasticsearchResurrect()
          )
       )

它保持死连接并尝试执行请求。此外,我们必须通过一些大的值不。的重试次数,否则重试次数超过(

所以,我的主要问题是:
如何绕过这个问题?没有.shards怎么会影响这个呢?
p.s:增加超时是足够简单的,需要理解和找到更优雅的方式

lxkprmvk

lxkprmvk1#

唯一的解决办法是增加超时时间

相关问题