一致性哈希算法應(yīng)用領(lǐng)域
分布式數(shù)據(jù)存儲(chǔ)
均衡的分配存儲(chǔ)數(shù)據(jù)
緩存
Hadoop(大數(shù)據(jù))
搜索引擎(尤其是分布式筹吐,例如ES)
數(shù)據(jù)庫(kù)(分布式數(shù)據(jù)庫(kù)-分庫(kù)分表)
用戶量繼續(xù)增大
引出新的問題:高并發(fā),海量數(shù)據(jù)
rides (7-8W/s并發(fā)讀-3W/s并發(fā)寫)达罗、memcache 10W/s并發(fā)量
比如并發(fā)量20W左右
高并發(fā)必定集群,一臺(tái)服務(wù)器撐不住并發(fā)量的時(shí)候致板,需要增設(shè)新的服務(wù)器,組成集群,并通過負(fù)載均衡協(xié)調(diào)組件協(xié)調(diào)
方法一: hash求余侠碧、緩存集群節(jié)點(diǎn)數(shù)
弊端: 如果隨著業(yè)務(wù)增長(zhǎng),增加了新的服務(wù)器缠黍,提升集群的并發(fā)處理能力弄兜,但通過求余算法,會(huì)導(dǎo)致數(shù)據(jù)找不到瓷式,由此替饿,如果問題出現(xiàn)在緩存服務(wù)器上,大量數(shù)據(jù)無法在緩存中找到贸典,就會(huì)到DB中訪問视卢,大量數(shù)據(jù)同時(shí)訪問DB導(dǎo)致緩存雪崩
hashMap中也是hash求余
基數(shù)發(fā)生變化的算法都不靠譜
集群就是隨便加隨便減,但這種求余等類似算法會(huì)導(dǎo)致工作增加等等系列問題廊驼,被坑死的感覺
方法二 : 一致性hash算法
風(fēng)險(xiǎn)均攤据过,同時(shí)避免緩存雪崩,同時(shí)引入虛擬節(jié)點(diǎn)連接物理機(jī)器分配數(shù)據(jù)存儲(chǔ)地址妒挎,保障新增服務(wù)器后數(shù)據(jù)處理壓力均攤蝶俱。