expected_nodes和recover_after_nodes参数之间的差异

Tho*_*asC 8 elasticsearch

我看不到网关模块恢复阶段的两个参数之间的区别.

文档中:

  • gateway.recover_after_nodes(它接受一个数字)设置控制后,许多(...)符合条件的节点(...)的复苏将如何开始.

  • gateway.expected_nodes允许设置多少(...)符合条件的节点预计将在集群中,而曾经遇到过,(...)开始复苏

根据我的理解,一旦节点数等于设置值,这两个设置就会触发恢复阶段.

为什么使用一个而不是另一个?

使用它们的重点是什么?

例如 :

gateway:
    recover_after_nodes: 3
    expected_nodes: 5
Run Code Online (Sandbox Code Playgroud)

在这种情况下,目的是expected_nodes什么?一旦有3个节点,将立即触发恢复.必须有另一个使用它的理由.

我希望我的问题很清楚.

提前致谢!

Joh*_*one 12

使用recovery_after_nodes,recover_after_data_nodes或recovery_after_master_nodes时,一旦满足所有设置条件,群集将在开始恢复之前开始等待recover_after_time:

gateway.recover_after_time设置(接受时间值)设置一旦满足所有gateway.recover_after ...节点条件,等待恢复发生的时间.

使用expected_nodes,expected_data_nodes或expected_master节点时,一旦满足所有条件,恢复将开始 - 群集将不会等待.此外,它还将recovery_after_time默认为5分钟.

在您的测试用例中:

gateway:
    recover_after_nodes: 3
    expected_nodes: 5
Run Code Online (Sandbox Code Playgroud)

一旦你点击3个节点,倒计时时钟开始,然后集群将在5分钟内恢复(默认值)或者如果你点击5个节点.基本上它允许您设置最小阈值(recovery_after_nodes),并使用超时(recovery_after_time)等待所需的状态(expected_nodes).命中recovery_after_nodes后,或者当命中expected_nodes(无需额外等待)时,您将恢复recovery_after_time - 以先到者为准.