【问题标题】:Leader election领袖选举
【发布时间】:2014-02-19 04:03:40
【问题描述】:

我正在阅读关于分布式系统的教程。这是一个关于它的问题及其提供的解决方案:

问:假设我们有十个节点,每个节点都连接到其他九个节点。设计一个可以在所有人身上运行的程序来识别领导者。

A:在程序中,要求每个节点随机等待一段时间,然后发送一个带时间戳的“hello”消息。最早发送消息的节点将成为领导者。如果有平局,重复上述过程。这种方法只需要发送 9 条消息。

问题和解决方案似乎都很简单。我的问题是:上述解决方案是否意味着每个节点都需要向所有其他 9 个节点发送 9 条消息?那么节点之间发出的消息总数将是 9 * 10 = 90。我说的对吗?

谢谢。

【问题讨论】:

    标签: system distributed


    【解决方案1】:

    不,

    第一个节点发送9条消息,其他节点都会收到,不会再发送任何东西,大家都知道谁是leader。

    如果另一个节点在收到另一个之前发送了 9 条“hello”消息,则为平局。并且系统中的每个节点都会收到这两条 hello 消息并且知道这是平局。在这种情况下,只有那些节点会再次执行上述步骤。

    【讨论】:

      【解决方案2】:

      不,不需要总共 90 条消息,因为一旦节点收到“Hello”消息,它就不需要发送它自己的“Hello”消息,因为它知道网络上已经有一个主节点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-08
        • 1970-01-01
        • 2015-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多