一致性 Hash 常用於緩解分散式快取系統擴縮容節點時造成的快取大量失效的問題。一致性 Hash 與其說是一種 Hash 演算法,其實更像是一種負載均衡策略。
GroupCache 是 golang 官方提供的一個分散式快取庫,其中包含了一個簡單的一致性 Hash 的實現。其程式碼在 github.com/golang/groupcache/consistenthash。本文將會基於 GroupCache 的一致性 Hash 實現,深入剖析一致性 Hash 的原理。
本文會著重探討以下幾點內容:
- 傳統的 Hash 式負載均衡在叢集擴縮容時面臨的快取失效問題。
- 一致性 Hash 的原理。
- Golang 的開源庫 GroupCache 如何實現一致性 Hash 。