一致性哈希是一種特殊的哈希算法,其設計用於分散式系統中,特別是在伺服器集群和快取系統中。它通過將伺服器節點和請求映射到一個環狀的哈希空間中,以實現動態的負載均衡和高可用性。
在一致性哈希中,每個伺服器節點和一個虛擬節點(或多個虛擬節點)都被哈希到一個環上。這個環是由哈希值組成的,這些哈希值通常在2^32-1的範圍內。當有新的伺服器加入或現有伺服器離開時,只有一小部分請求的映射關係會受到影響,這是因為只有受影響的伺服器和其順時針方向上的下一個伺服器之間的請求映射關係會發生變化。
一致性哈希的主要特點包括:
單調性(Monotonicity):新增或刪除伺服器時,原有的請求映射關係儘可能少地被破壞。
平衡性:請求在環上的分布儘可能均勻,以實現負載均衡。
分散性:系統中的伺服器節點分布廣泛,避免集中化。
與傳統哈希算法相比,一致性哈希在處理伺服器節點的增減時更為靈活,因為它不需要重新計算所有請求的哈希值。這使得一致性哈希在分散式系統中非常有用,尤其是在需要動態調整伺服器集群規模的情況下。