分布式系統中的一致性hash為什麼叫一致性hash?

時間 2021-06-03 16:57:23

1樓:三毛

先寫個大概,有人看再仔細展開。

要理解一致性雜湊的一致性的含義,首先要知道一致性雜湊的典型應用場景,也就是分布式快取。

比如我們有三颱伺服器,那麼需要快取的資料可以通過簡單的膜3取餘,來決定快取到哪乙個伺服器上。

這樣會有個問題,也就是當伺服器數量變化的時候(比如現有伺服器太少,需要新加),我們需要改變上述對映規則(否則沒有資料快取到新的伺服器上),也就是全量資料都需要重新對映到對應的伺服器上。這就是不一致。

所以一致性雜湊的一致性體現在,當伺服器數量變化時,影響到的,資料—伺服器,對應關係變化不是全量的。(對於絕大多數資料來說,是前後一致的)

2樓:青牛

你好。想象hash環你應該聽過,如果不知道可以先查一下維基百科,一般的分布式系統中hash可以把伺服器對映到環上的任意一點,為什麼叫一致性hash,一般的,在一致性Hash演算法中,如果一台伺服器不可用,則受影響的資料僅僅是此伺服器到其環空間中前一台伺服器(即沿著逆時針方向行走遇到的第一台伺服器)之間資料,所以把影響範圍控制在乙個很小的範圍內,同時如果增加一台伺服器,則受影響的資料僅僅是新伺服器到其環空間中前一台伺服器(即沿著逆時針方向行走遇到的第一台伺服器)之間資料,其它資料也不會受到影響,這就大大增加了系統的魯棒性,但是仍然可能會有部分資料丟失的風險,就像你在前面所說一致性hash仍然會導致快取丟失。

分布式系統常用的一致性演算法有哪些?

一致性這個翻譯是有問題的,應該用共識比較好consistency vs consensus一致性容易混淆使用replication 方法多備份資料來防止資料丟失的情況。共識系統則很清晰,就是多個參與者針對某乙個議題達成一致意見。 satanson 其實應該叫分布式共識 distributed con...

分布式強一致性有哪些實現方案,2PC是不是強一致?

Augustus Fengh 一般我們說的強一致性,指的其實是 consensus 方面的問題,和 2pc 解決的事務問題不是一回事 如果你指的是一致性問題嘛,那 raft paxos 都能做到,不過需要加上限制 比如 lease 讀主寫主 因為本質上強一致是一系列 讀 和 寫 可見內容的約束 如果...

分布式事務中的最終一致具體應該如何實現?

首先最終一致性就不是採用遠端呼叫這種方式來實現的,你如果要用遠端呼叫來實現,那就上全域性事務框架,沒有什麼其他的好辦法。最終一致性目前都是通過訊息補償投遞來實現的,在消費端做冪等性校驗,投遞端保障投遞正確。 kimmking 分布式系統中的資料一致性和效能怎麼權衡?kimmking的回答 知乎 分布...