一致性哈希原理
2019獨角獸企業重金招聘Python工程師標準>>>
一致性哈希原理
http://wenku.baidu.com/link?url=fY3-zLTqzQ_7TWAFh5xzNywwrCZ4IvP9UkUZWkTbg6sB61LovRmVd4vq6d1ce959a6-ZmbN1rtHrfoR1AePPuEDB-dQbWuxGha5yotHtq0K
應用場景分析
1>memcache的add方法:通過一致性hash算法確認當前客戶端對應的cache server的hash值以及要存儲數據key的hash進行對應,確認cache server,獲取connection進行數據存儲
2>memcache的get方法:通過一致性hash算法確認當前客戶端對應的cache server的hash值以及要提取數據的hash值,進而確認存儲的cache server,獲取connection進行數據提取
1>一致性hash算法只是幫我們減少cache集群中的機器數量增減的時候,cache的數據能進行最少重建,只要cache集群的server數量有變化,必然產生數據命中的問題
2>對于數據的分布均衡問題,通過虛擬節點的思想來達到均衡分配,當然,我們cache server節點越少就越需要虛擬節點這個方式來均衡負載
3>我們的cache客戶端根本不會維護一個map來記錄每個key存儲在哪里,都是通過key的hash和cache server(也許ip可以作為參數)的hash計算當前的key應該存儲在哪個節點上
4>當我們的cache節點崩潰了,我們必定丟失部分cache數據,并且要根據活著的cache server和key進行新的一致性匹配計算。有可能對部分沒有丟失的數據也要做重建
5>至于正常到達數據存儲節點,如何找到key對應的數據,那就是cache server本身的內部算法實現了,此處不做描述
轉載于:https://my.oschina.net/zhengyp/blog/494704
總結