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