我看不到网关模块恢复阶段的两个参数之间的差异。

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-以先到者为准。

    09-26 21:56