簡體   English   中英

領導者選舉算法

[英]Leader Election Algorithm

我正在探索集群計算中的各種架構。 一些流行的是:

  1. 主從。
  2. RPC
  3. ...

在Master-slave中,通常的方法是將一台機器設置為主機,將一堆機器設置為主機控制的從機。 一個特別的算法讓我感興趣。 它被稱為Leader-Election Algo ,它在選擇哪些機器將成為主機時具有一定的隨機性。

我的問題是 - 為什么有人想以這種方式選擇一台主機? 與手動選擇機器作為主機相比,這種方法有什么優勢?

這種算法有一些優點:

  1. 選擇節點作為領導者將動態完成,例如,您可以選擇性能最高的節點,新節點的到達可能是更好的選擇。
  2. 動態選擇領導者的另一個好方法是,如果其中一個節點出現重大故障(例如PC正在關閉),您還有其他選擇,無需手動更改領導者。

  3. 如果您手動選擇節點應手動配置所有其他節點以使用此節點,並手動設置其時間,...但此算法將幫助您處理時序問題。

  4. 例如(不太相關)為什么在大多數情況下使用DHCP? 太多的配置將被這種算法所困擾。

使用這種算法的主要思想是擺脫額外的配置,增加某種靈活性,以及​​整個系統的穩定性。 但通常(在HPC / MPI應用程序中)手動選擇主節點。

假設您的主選擇算法非常簡單 - 獲取可用系統列表並選擇具有最高IP地址的系統。 在這種情況下,您可以輕松地在任何節點上啟動新進程,它將自動找到主節點。

這種想法的一個很好的例子是WCCP協議“指定代理”選擇算法,其中代理的數量可以是靈活的並且在運行時中選擇主節點。

考慮節點網絡,始終擁有一個領導節點至關重要。 如果當前的領導者去世,那么網絡有些人必須選擇另一個領導者。 鑒於這種情況和要求,有兩種可能的方法。

  1. 中央系統方法,其中有一個中心節點決定誰將成為領導者。 如果當前領導者死亡,那么這個中心節點將決定誰應該接管領導者角色。 但這是單點故障,即負責決定領導者的中心節點,如果當前領導者死亡,那么就沒有人選擇領導者。

  2. 在同一場景中,我們可以使用分布式領導者選擇,因為所有節點都達成了領導者應該達成的共識。 因此,我們不需要有一個中心節點來決定領導者應該是誰,從而消除單點故障。 當領導節點死亡時,將有一種方法來檢測節點故障,然后每個節點將啟動分布式領導者選擇算法,並相互達成選舉領導者的共識。

因此,簡而言之,當您的系統沒有中央控制時,可能是因為系統可以在沒有單點故障的情況下進行擴展,在這些系統中選擇某個節點時,會使用領導者選舉算法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM