我看不到网关模块恢复阶段的两个参数之间的差异。
在documentation中:
gateway.recover_after_nodes
设置(接受数字)控制。 gateway.expected_nodes
允许设置集群中预期有多少(...)个合格节点,一旦满足,(...)恢复就开始 据我了解,一旦节点数等于设置的值,这两个设置将触发恢复阶段。
为什么要一个使用另一个?
而同时使用它们又有什么意义呢?
例如 :
gateway:
recover_after_nodes: 3
expected_nodes: 5
在这种情况下,
expected_nodes
的目的是什么?只要有3个节点,就会立即触发恢复。使用它肯定还有另一个原因。我希望我的问题足够清楚。
提前致谢!
最佳答案
当使用recovery_after_nodes,recovery_after_data_nodes或recovery_after_master_nodes时,一旦满足所有设置条件,集群便会开始等待recovery_after_time,然后再开始恢复:
当使用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之后,或者在击中Expected_nodes时(无需额外等待)进行恢复recovery_after_time-以先到者为准。