我无法看到网关模块恢复阶段的两个参数之间的区别。
gateway.recover_after_nodes
设置(接受一个数字)控制后,有多少(...)符合条件的节点(...)恢复开始。
gateway.expected_nodes
允许设置预计在群集中有多少(...)符合条件的节点,并且一旦满足,(... )恢复开始
根据我的理解,一旦节点数等于设定值,这两个设置就会触发恢复阶段。
为什么使用一个而不是另一个?
使用它们有什么意义?
例如:
gateway:
recover_after_nodes: 3
expected_nodes: 5
在这种情况下,expected_nodes
的目的是什么?一旦有3个节点,将立即触发恢复。必须有另一个理由来使用它。
我希望我的问题很清楚。
提前致谢!
答案 0 :(得分: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
一旦你点击3个节点,倒计时时钟开始,然后集群将在5分钟内恢复(默认值)或者如果你点击5个节点。基本上它允许您设置最小阈值(recovery_after_nodes),并使用超时(recovery_after_time)等待所需的状态(expected_nodes)。您将在recovery_after_nodes被命中之后恢复recovery_after_time,或者当hit_nodes被命中时(无需额外等待) - 以先到者为准。
答案 1 :(得分:0)
http://www.elastic.co/guide/en/elasticsearch/reference/1.x/modules-gateway.html
gateway:
recover_after_time: 5m
expected_nodes: 2
在预期的2个节点中,群集将导致恢复开始5分钟 在第一个节点启动后,但一旦集群中有2个节点, 恢复将立即开始(无需等待)。
因此,recover_after_time定义的计时器将在第一个节点启动后启动。找到recover_after_nodes中定义的节点后无法启动