亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

web選舉、多數派和租約是什么

發布時間:2021-12-21 13:38:52 來源:億速云 閱讀:158 作者:iii 欄目:開發技術

本篇內容介紹了“web選舉、多數派和租約是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

選舉(electioin)

一致性問題(consistency)是獨立的節點間如何達成決議的問題,選出大家都認可的leader本質上也是一致性問題,因而如何應對宕機恢復、網絡分化等在leader選舉中也需要考量。

Bully算法[1]是最常見的選舉算法,其要求每個節點對應一個序號,序號最高的節點為leader。leader宕機后次高序號的節點被重選為leader,過程如下:

web選舉、多數派和租約是什么

(a). 節點4發現leader不可達,向序號比自己高的節點發起重新選舉,重新選舉消息中帶上自己的序號

(b)(c). 節點5、6接收到重選信息后進行序號比較,發現自身的序號更大,向節點4返回OK消息并各自向更高序號節點發起重新選舉

(d). 節點5收到節點6的OK消息,而節點6經過超時時間后收不到更高序號節點的OK消息,則認為自己是leader

(e). 節點6把自己成為leader的信息廣播到所有節點

回顧 《分布式系統理論基礎 - 一致性、2PC和3PC》就可以看到,Bully算法中有2PC的身影,都具有提議(propose)和收集反饋(vote)的過程。

在一致性算法 Paxos、ZAB[2]、Raft[3]中,為提升決議效率均有節點充當leader的角色。ZAB、Raft中描述了具體的leader選舉實現,與Bully算法類似ZAB中使用zxid標識節點,具有最大zxid的節點表示其所具備的事務(transaction)最新、被選為leader。

多數派(quorum)

在網絡分化的場景下以上Bully算法會遇到一個問題,被分隔的節點都認為自己具有最大的序號、將產生多個leader,這時候就需要引入多數派(quorum)[4]。多數派的思路在分布式系統中很常見,其確保網絡分化情況下決議唯一。

多數派的原理說起來很簡單,假如節點總數為2f+1,則一項決議得到多于 f 節點贊成則獲得通過。leader選舉中,網絡分化場景下只有具備多數派節點的部分才可能選出leader,這避免了多leader的產生。

web選舉、多數派和租約是什么

多數派的思路還被應用于副本(replica)管理,根據業務實際讀寫比例調整寫副本數Vw、讀副本數Vr,用以在可靠性和性能方面取得平衡[5]

租約(lease)

選舉中很重要的一個問題,以上尚未提到:怎么判斷leader不可用、什么時候應該發起重新選舉?最先可能想到會通過心跳(heart beat)判別leader狀態是否正常,但在網絡擁塞或瞬斷的情況下,這容易導致出現雙主。

租約(lease)是解決該問題的常用方法,其最初提出時用于解決分布式緩存一致性問題[6],后面在分布式鎖[7]等很多方面都有應用。

web選舉、多數派和租約是什么

租約的原理同樣不復雜,中心思想是每次租約時長內只有一個節點獲得租約、到期后必須重新頒發租約。假設我們有租約頒發節點Z,節點0、1和2競選leader,租約過程如下:

(a). 節點0、1、2在Z上注冊自己,Z根據一定的規則(例如先到先得)頒發租約給節點,該租約同時對應一個有效時長;這里假設節點0獲得租約、成為leader

(b). leader宕機時,只有租約到期(timeout)后才重新發起選舉,這里節點1獲得租約、成為leader

租約機制確保了一個時刻最多只有一個leader,避免只使用心跳機制產生雙主的問題。在實踐應用中,zookeeper、ectd可用于租約頒發。

“web選舉、多數派和租約是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

web
AI

富锦市| 龙川县| 仁寿县| 襄城县| 博湖县| 西乌珠穆沁旗| 家居| 井冈山市| 新余市| 新昌县| 景东| 平凉市| 嘉黎县| 池州市| 镇沅| 波密县| 青川县| 鄂托克旗| 长武县| 青阳县| 长阳| 民权县| 南郑县| 曲阳县| 肥西县| 措勤县| 阿克苏市| 蒙自县| 新竹县| 陵川县| 三都| 堆龙德庆县| 乌拉特中旗| 昭觉县| 平乐县| 拉孜县| 江北区| 兴山县| 乌拉特前旗| 漳州市| 海城市|