W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
分片是為了應(yīng)對(duì)業(yè)務(wù)增長(zhǎng)帶來(lái)的數(shù)據(jù)增長(zhǎng),需要對(duì)動(dòng)態(tài)橫向擴(kuò)容有一定要求時(shí)采用。對(duì)于一般的分片采用一致性哈希,它極大的優(yōu)化機(jī)器增刪時(shí)帶來(lái)的哈希目標(biāo)漂移問(wèn)題。同時(shí)對(duì)于Hash目標(biāo)漂移時(shí)產(chǎn)生的嚴(yán)重的數(shù)據(jù)傾斜,可以利用虛擬節(jié)點(diǎn)來(lái)優(yōu)化。基本上,物理節(jié)點(diǎn)有了一定規(guī)模后,只要不是同時(shí)掛多個(gè)節(jié)點(diǎn),或者同時(shí)擴(kuò)容多個(gè)節(jié)點(diǎn),數(shù)據(jù)分片不會(huì)有太大的擾動(dòng)。穿透過(guò)Cache的請(qǐng)求后端存儲(chǔ)可以抗住即可。
稍微復(fù)雜的方案是可以使用“預(yù)分片(Pre-Sharding)”的方案,也稱為按“桶”進(jìn)行數(shù)據(jù)劃分,即分配一個(gè)相當(dāng)大的集合,對(duì)Key哈希的結(jié)果落在這個(gè)集合中,集合的每個(gè)元素又與具體的物理節(jié)點(diǎn)存在多對(duì)一的路由映射關(guān)系,這張路由表由一個(gè)配置中心進(jìn)行維護(hù)。其實(shí),一致性哈希中的虛擬節(jié)點(diǎn),實(shí)際上也可以歸類到Pre-Sharding方案中。換句話說(shuō),只要是key經(jīng)過(guò)兩次哈希,第一次Hash到虛擬節(jié)點(diǎn),第二次Hash到物理節(jié)點(diǎn),都可以算作Pre-Sharding。只不過(guò)區(qū)別在于,一致性哈希的第二次Hash其路由表是按照算法固定的,而分桶的第二次Hash其路由表是第三方可配的。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: