但是,如果一台伺服器宕機怎麼辦,或者增加一台快取伺服器怎麼辦。還採用這種方法就會導致快取伺服器命中率瞬間下降。這時可以採用consistent hashing的思想。
consistent hashing如下所示:首先求出memcached伺服器(節點)的雜湊值,並將其配置到0~232的圓(continuum)上。然後用同樣的方法求出儲存資料的鍵的雜湊值,並對映到圓上。然後從資料對映到的位置開始順時針查詢,將資料儲存到找到的第乙個伺服器上。如果超過232仍然找不到伺服器,就會儲存到第一台memcached伺服器上。
從上圖的狀態中新增一台memcached伺服器。餘數分布式演算法由於儲存鍵的伺服器會發生巨大變化而影響快取的命中率,但consistent hashing中,只有在continuum上增加伺服器的地點逆時針方向的第一台伺服器上的鍵會受到影響。
因此,consistent hashing最大限度地抑制了鍵的重新分布。而且,有的consistent hashing的實現方法還採用了虛擬節點的思想。使用一般的hash函式的話,伺服器的對映地點的分布非常不均勻。因此,使用虛擬節點的思想,為每個物理節點(伺服器)在continuum上分配100~200個點。這樣
就能抑制分布不均勻,最大限度地減小伺服器增減時的快取重新分布。
memcached快取,「分布式」 快取伺服器
memcached快取,分布式 快取伺服器,其本身沒有分布式功能,且各個memcached快取之間不會通訊與共享,因此其分布式取決客戶端的實現 也就是說客戶端存資料,可能存到不同的memcached,但取的時候直接取不用管存在哪乙個memcached。mem new memcached 新增多個me...
集群 分布式 負載均衡
1 linux集群主要分成三大類 高可用集群,負載均衡集群,科學計算集群 負載均衡集群 load balance cluster 負載均衡系統 集群中所有的節點都處於活動狀態,它們分攤系統的工作負載。一般web伺服器集群 資料庫集群和應用伺服器集群都屬於這種型別。負載均衡集群一般用於相應網路請求的網...
集群,負載均衡,分布式
簡潔明瞭的解釋 記錄一下 集群 一堆伺服器互聯 負載均衡 一堆伺服器分攤壓力 分布式 一堆伺服器分開工作 相對來說,集群一般是指一堆伺服器去做同一項工作,一般是集中高速互聯實現快速的運算,對外的感覺是一台伺服器。負載均衡也是一堆伺服器做同一項工作,不同的伺服器做的事情基本相同,但是對外能發現是不同的...