我一直在閱讀關於分佈式系統中的選舉算法。我讀了關於欺負算法並理解它。我碰到A Ring Algorithm
,瞭解它如何進行選舉,但我不明白它是如何處理當兩個進程2
和5
同時發現協調員7
不起作用的情況。選舉算法 - 環算法
每一種建立一個選舉消息,並開始循環it.Eventually,兩個消息會去所有的辦法,都
2
和5
將其轉換爲協調員消息,具有完全相同的號碼,在同一訂購。
誰將成爲協調員(2
或5
)以及爲什麼根據此算法?
我一直在閱讀關於分佈式系統中的選舉算法。我讀了關於欺負算法並理解它。我碰到A Ring Algorithm
,瞭解它如何進行選舉,但我不明白它是如何處理當兩個進程2
和5
同時發現協調員7
不起作用的情況。選舉算法 - 環算法
每一種建立一個選舉消息,並開始循環it.Eventually,兩個消息會去所有的辦法,都
2
和5
將其轉換爲協調員消息,具有完全相同的號碼,在同一訂購。
誰將成爲協調員(2
或5
)以及爲什麼根據此算法?
說2和5發現協調器不能正常工作,那麼兩者都將啓動選舉算法。
由於環是單向的,因此消息只能在一個方向上傳播。 2的選舉消息將達到5,5的選舉消息將達到2.
但有趣的是,每當一個節點收到選舉消息時,它就會將其id添加到該消息中。同樣,當一個節點收到其自己的選舉消息時,它選擇具有最大ID的節點作爲新協調者,這兩個選舉消息中將爲5。
因此5將成爲協調者併發送協調者消息。
就是這樣!我錯過了這個--->「它選擇了最大的ID作爲新協調者的節點」,現在我明白了,非常感謝。 – JWizard
@如果2和5都啓動該算法,同時Coordinatore將始終爲5(更大的id)。 –