掌握分布式緩存負(fù)載均衡的規(guī)則處理方法及步驟-創(chuàng)新互聯(lián)

下文給大家?guī)碚莆辗植际骄彺尕?fù)載均衡的規(guī)則處理方法及步驟,希望能夠給大家在實(shí)際運(yùn)用中帶來一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用創(chuàng)新互聯(lián)在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)來做一個(gè)解答。

建鄴網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),建鄴網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為建鄴上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的建鄴做網(wǎng)站的公司定做!

在大規(guī)模的緩存應(yīng)用中,應(yīng)運(yùn)而生了分布式緩存系統(tǒng)。key-value如何均勻的分散到集群中?最常規(guī)的方式莫過于hash取模的方式。比如集群中可用機(jī)器適量為N,那么key值為K的的數(shù)據(jù)請求很簡單的應(yīng)該路由到hash(K) mod N對應(yīng)的機(jī)器。但是在一些高速發(fā)展的web系統(tǒng)中,這樣的解決方案仍有些缺陷。隨著系統(tǒng)訪問壓力的增長,緩存系統(tǒng)不得不通過增加機(jī)器節(jié)點(diǎn)的方式提高集群的相應(yīng)速度和數(shù)據(jù)承載量。增加機(jī)器意味著按照hash取模的方式,在增加機(jī)器節(jié)點(diǎn)的這一時(shí)刻,大量的緩存命不中,緩存數(shù)據(jù)需要重新建立,甚至是進(jìn)行整體的緩存數(shù)據(jù)遷移,瞬間會給DB帶來極高的系統(tǒng)負(fù)載,設(shè)置導(dǎo)致DB云服務(wù)器宕機(jī)。

如果不是緩存數(shù)據(jù),而是持久化的數(shù)據(jù),那么當(dāng)擴(kuò)容的時(shí)候,絕大部分?jǐn)?shù)據(jù)都要遷移(取模的基數(shù)N變化了),這也是不能忍受的。

掌握分布式緩存負(fù)載均衡的規(guī)則處理方法及步驟

一致性哈希平衡負(fù)載

引入一致性哈希,解決以上增減機(jī)器導(dǎo)致負(fù)載瞬間整體增大問題

通過在整數(shù)范圍內(nèi)負(fù)責(zé)各區(qū)域的方式,節(jié)點(diǎn)負(fù)責(zé)區(qū)域的負(fù)載不會隨著增減節(jié)點(diǎn)發(fā)生大規(guī)模的遷移

但是最簡單的一致性哈希,在增減物理機(jī)的時(shí)候,似乎要增加一倍節(jié)點(diǎn)或減去一半節(jié)點(diǎn)才能保證各個(gè)節(jié)點(diǎn)的負(fù)載均衡

虛擬節(jié)點(diǎn)對一致性哈希的改進(jìn)

對于一致性哈希的負(fù)載分布不平均問題,所以提出:虛擬節(jié)點(diǎn)對一致性哈希的改進(jìn)

4個(gè)物理節(jié)點(diǎn)可以變成很多個(gè)虛擬節(jié)點(diǎn),每個(gè)虛擬節(jié)點(diǎn)支持連續(xù)的哈希環(huán)上的一段。而這時(shí)如果加入一個(gè)物理節(jié)點(diǎn),就會相應(yīng)加入很多虛擬節(jié)點(diǎn),這些新的虛擬節(jié)點(diǎn)是相對均勻地插入到整個(gè)哈希環(huán)上,這樣,就可以很好的分擔(dān)現(xiàn)有物理節(jié)點(diǎn)的壓力了;如果減少一個(gè)物理節(jié)點(diǎn),對應(yīng)的很多虛擬節(jié)點(diǎn)就會失效,這樣,就會有很多剩余的虛擬節(jié)點(diǎn)來承擔(dān)之前虛擬節(jié)點(diǎn)的工作,但是對于物理節(jié)點(diǎn)來說,增加的負(fù)載相對是均衡的。

所以可以通過一個(gè)物理節(jié)點(diǎn)對應(yīng)非常多的虛擬節(jié)點(diǎn),并且同一個(gè)物理節(jié)點(diǎn)的虛擬節(jié)點(diǎn)盡量均勻分布的方式來解決增加或減少節(jié)點(diǎn)時(shí)負(fù)載不均衡的問題。

至于一個(gè)物理節(jié)點(diǎn)對應(yīng)多少的虛擬節(jié)點(diǎn)才能達(dá)到比較好的均衡效果,有一個(gè)圖

掌握分布式緩存負(fù)載均衡的規(guī)則處理方法及步驟

x軸表示的是需要為每臺物理服務(wù)器擴(kuò)展的虛擬節(jié)點(diǎn)倍數(shù)(scale),y軸是實(shí)際物理服務(wù)器數(shù),可以看出,當(dāng)物理服務(wù)器的數(shù)量很小時(shí),需要更大的虛擬節(jié)點(diǎn),反之則需要更少的節(jié)點(diǎn),從圖上可以看出,在物理服務(wù)器有10臺時(shí),差不多需要為每臺服務(wù)器增加100~200個(gè)虛擬節(jié)點(diǎn)才能達(dá)到真正的負(fù)載均衡。

映射表與規(guī)則自定義計(jì)算方式

映射表示根據(jù)分庫分表字段的值的查表法來確定數(shù)據(jù)源的方法,一般用于對熱點(diǎn)數(shù)據(jù)的特殊處理,或者在一些場景下對不完全符合規(guī)律的規(guī)則進(jìn)行補(bǔ)充。

可以通過自定義函數(shù)實(shí)現(xiàn)來計(jì)算最終的分庫,舉例來說,假設(shè)根據(jù)id取模分成了4個(gè)庫,但是對于一些熱點(diǎn)id,我們希望將其獨(dú)立到另外的庫,那么通過類似下面的表達(dá)式可以完成:

if (id in  hotset) {
return nodes;
}
return hash(id);

看了以上關(guān)于掌握分布式緩存負(fù)載均衡的規(guī)則處理方法及步驟,如果大家還有什么地方需要了解的可以在創(chuàng)新互聯(lián)行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,創(chuàng)新互聯(lián)技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗(yàn)了。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享文章:掌握分布式緩存負(fù)載均衡的規(guī)則處理方法及步驟-創(chuàng)新互聯(lián)
標(biāo)題URL:http://muchs.cn/article48/dsechp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、用戶體驗(yàn)微信小程序、定制網(wǎng)站、做網(wǎng)站云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站