滚动重启时群集是否拒绝查询?

时间:2018-10-17 19:44:24

标签: elasticsearch

以下是滚动重启的帖子:

https://www.elastic.co/guide/en/elasticsearch/guide/master/_rolling_restarts.html

这会影响在此过程中运行的任何查询吗?该过程不会明确让群集知道某个节点将被杀死,而只会停止同步和重新平衡。现有查询是否被拒绝或重试?

还有另一种选择 “短暂的”: { “ cluster.routing.allocation.exclude._ip”: } 可以“禁用”节点以重新启动和重新平衡数据。这比链接所说的方法好吗?

1 个答案:

答案 0 :(得分:1)

这取决于您的集群配置。您可以避免。

如果您有副本并且不直接查询重新启动节点,则应该没事。

首先,看看coordinating node笔记

  

诸如搜索请求或批量索引之类的请求   请求可能涉及保存在不同数据节点上的数据。搜索   例如,请求是在两个阶段执行的,这两个阶段相互协调   由接收客户请求的节点协调节点。

     

在分散阶段,协调节点将请求转发给   保存数据的数据节点。每个数据节点执行   本地请求,并将其结果返回到协调节点。在   在收集阶段,协调节点会减少每个数据节点的   结果合并为一个全局结果集。

     

每个节点都隐式地是一个协调节点。这意味着一个节点   将所有三个node.master,node.data和node.ingest都设置为false   将仅充当协调节点,无法禁用。作为一个   结果,这样的节点需要有足够的内存和CPU才能   处理收集阶段。

可能存在不同的边缘情况:

  1. 集群中只有一个节点:请求将失败-添加更多节点
  2. 您在群集中有几个节点,并且分片有0个副本:如果您需要重启查询中节点的数据,请求将部分失败-拥有副本
  3. 您有几个具有副本的节点,并且直接查询重新启动节点:请求将失败-从应用程序中排除重新启动节点或始终查询专用的协调节点,这将确保节点离开群集。