ZAB協議包括兩種基本的模式:消息廣播和崩潰恢復
此時開啟新一輪Leader選舉,選舉產生的Leader會與過半的Follower進行同步,使數據一致,當與過半的機器同步完成后,就退出恢復模式,然后進入消息廣播模式。
整個ZooKeeper集群的一致性保證就是在上面兩個狀態之前切換,當Leader服務正常時,就是正常的消息廣播模式;當Leader不可用時,則進入崩潰恢復模式,崩潰恢復階段會進行數據同步,完成以后,重新進入消息廣播階段。
Zxid是Zab協議的一個事務編號,Zxid是一個64位的數字,其中低32位是一個簡單的單調遞增計數器,針對客戶端每一個事務請求,計數器加1;而高32位則代表Leader周期年代的編號。
Leader周期(epoch),可以理解為當前集群所處的年代或者周期,每當有一個新的Leader選舉出現時,就會從這個Leader服務器上取出其本地日志中最大事務的Zxid,并從中讀取epoch值,然后加1,以此作為新的周期ID。高32位代表了每代Leader的唯一性,低32位則代表了每代Leader中事務的唯一性。
將請求按順序輪流地分配到后端服務器上,它均衡地對待后端的每一臺服務器,而不關心服務器實際的連接數和當前的系統負載。
不同的后端服務器可能機器的配置和當前系統的負載并不相同,因此它們的抗壓能力也不相同。給配置高、負載低的機器配置更高的權重,讓其處理更多的請;而配置低、負載高的機器,給其分配較低的權重,降低其系統負載,加權輪詢能很好地處理這一問題,并將請求順序且按照權重分配到后端。
通過系統的隨機算法,根據后端服務器的列表大小值來隨機選取其中的一臺服務器進行訪問。由概率統計理論可以得知,隨著客戶端調用服務端的次數增多,其實際效果越來越接近于平均分配調用量到后端的每一臺服務器,也就是輪詢的結果。
與加權輪詢法一樣,加權隨機法也根據后端機器的配置,系統的負載分配不同的權重。不同的是,它是按照權重隨機請求后端服務器,而非順序。
源地址哈希的思想是根據獲取客戶端的IP地址,通過哈希函數計算得到的一個數值,用該數值對服務器列表的大小進行取模運算,得到的結果便是客服端要訪問服務器的序號。采用源地址哈希法進行負載均衡,同一IP地址的客戶端,當后端服務器列表不變時,它每次都會映射到同一臺后端服務器進行訪問。
最小連接數算法比較靈活和智能,由于后端服務器的配置不盡相同,對于請求的處理有快有慢,它是根據后端服務器當前的連接情況,動態地選取其中當前積壓連接數最少的一臺服務器來處理當前的請求,盡可能地提高后端服務的利用效率,將負責合理地分流到每一臺服務器。
本文鏈接:http://www.www897cc.com/showinfo-26-16748-0.html分布式基礎 - ZAB協議&負載均衡策略
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 這三個CSS生成器千萬別錯過啦!