傳統Hash分流與一致性Hash

2021-08-22 03:10:48 字數 661 閱讀 1106

一、傳統hash分流

分析:hash() % max結果在總在0 ~ max-1間,由此可以做負載均衡,請求分發

問題:分流時,機器死機會產生失敗請求,容易引起請求丟失

二、一致性hash

分析:一致性雜湊就是將整個雜湊值空間組織成乙個虛擬的圓環,如圖,雜湊函式的值空間為0 ~ 2^32-1,一致性hash中2^32-1(最大值) + 1 = 0(最小值),因此hash值空間形成閉環。新增機器,機器宕機,請求不會受任何影響,例如:node2掛掉了,請求b就由node3執行。

優點:很好的支援橫向擴張、動態增長,具有較好的容錯性和可擴充套件性,應用於分布式快取、分布式rpc框架的負載均衡

問題:節點少、分布不均勻而造成資料傾斜

三、資料傾斜問題解決

解決:伺服器虛擬出多個hash節點,均勻分布在hash環上,而且可以根據虛擬出節點的多少來控**務器的服務能力

一致性hash演算法 面試必備 一致性hash演算法

最近公司在招人,我們準備的問題中有一道是關於一致性hash演算法的問題,只有一些面試者能夠回答上來,而且答的也不是很全面,有的面試者只是聽說過,有的連聽都沒聽過,下面我把一致性hash演算法整理一下分享給大家 一致性雜湊演算法在1997年由麻省理工學院的karger等人在解決分布式cache中提出的...

一致性hash演算法虛擬節點 一致性hash演算法

hash 演算法也叫做雜湊演算法,他可以讓任意長度的資料m對映成為長度固定的值h。hash演算法的第乙個作用就是資料的快速儲存與查詢。寫過程式的人都知道,基本上主流的程式語言裡面都有個資料結構叫做map dictionary或者 hash table 它是根據key來直接訪問結果的資料結構。key的...

一致性hash演算法

july部落格16章開始 第一題 全排列,輸入乙個字串,列印出該字串中字元的所有排列 1.個人思路 回溯法建立的排序樹 2.july部落格 遞迴實現,依次固定第乙個字母,後面的交換,和上面描述的使用回溯法相似 c stl 演算法 next permutation的思想,關於next permutat...