您好,登錄后才能下訂單哦!
下文給大家?guī)碚莆辗植际骄彺?a title="負載均衡" target="_blank" href="http://kemok4.com/slb/">負載均衡的規(guī)則處理方法及步驟,希望能夠給大家在實際運用中帶來一定的幫助,負載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用億速云在行業(yè)內(nèi)累計的經(jīng)驗來做一個解答。
在大規(guī)模的緩存應(yīng)用中,應(yīng)運而生了分布式緩存系統(tǒng)。key-value如何均勻的分散到集群中?最常規(guī)的方式莫過于hash取模的方式。比如集群中可用機器適量為N,那么key值為K的的數(shù)據(jù)請求很簡單的應(yīng)該路由到hash(K) mod N對應(yīng)的機器。但是在一些高速發(fā)展的web系統(tǒng)中,這樣的解決方案仍有些缺陷。隨著系統(tǒng)訪問壓力的增長,緩存系統(tǒng)不得不通過增加機器節(jié)點的方式提高集群的相應(yīng)速度和數(shù)據(jù)承載量。增加機器意味著按照hash取模的方式,在增加機器節(jié)點的這一時刻,大量的緩存命不中,緩存數(shù)據(jù)需要重新建立,甚至是進行整體的緩存數(shù)據(jù)遷移,瞬間會給DB帶來極高的系統(tǒng)負載,設(shè)置導(dǎo)致DB云服務(wù)器宕機。
如果不是緩存數(shù)據(jù),而是持久化的數(shù)據(jù),那么當擴容的時候,絕大部分數(shù)據(jù)都要遷移(取模的基數(shù)N變化了),這也是不能忍受的。
一致性哈希平衡負載
引入一致性哈希,解決以上增減機器導(dǎo)致負載瞬間整體增大問題
通過在整數(shù)范圍內(nèi)負責(zé)各區(qū)域的方式,節(jié)點負責(zé)區(qū)域的負載不會隨著增減節(jié)點發(fā)生大規(guī)模的遷移
但是最簡單的一致性哈希,在增減物理機的時候,似乎要增加一倍節(jié)點或減去一半節(jié)點才能保證各個節(jié)點的負載均衡
虛擬節(jié)點對一致性哈希的改進
對于一致性哈希的負載分布不平均問題,所以提出:虛擬節(jié)點對一致性哈希的改進
4個物理節(jié)點可以變成很多個虛擬節(jié)點,每個虛擬節(jié)點支持連續(xù)的哈希環(huán)上的一段。而這時如果加入一個物理節(jié)點,就會相應(yīng)加入很多虛擬節(jié)點,這些新的虛擬節(jié)點是相對均勻地插入到整個哈希環(huán)上,這樣,就可以很好的分擔(dān)現(xiàn)有物理節(jié)點的壓力了;如果減少一個物理節(jié)點,對應(yīng)的很多虛擬節(jié)點就會失效,這樣,就會有很多剩余的虛擬節(jié)點來承擔(dān)之前虛擬節(jié)點的工作,但是對于物理節(jié)點來說,增加的負載相對是均衡的。
所以可以通過一個物理節(jié)點對應(yīng)非常多的虛擬節(jié)點,并且同一個物理節(jié)點的虛擬節(jié)點盡量均勻分布的方式來解決增加或減少節(jié)點時負載不均衡的問題。
至于一個物理節(jié)點對應(yīng)多少的虛擬節(jié)點才能達到比較好的均衡效果,有一個圖
x軸表示的是需要為每臺物理服務(wù)器擴展的虛擬節(jié)點倍數(shù)(scale),y軸是實際物理服務(wù)器數(shù),可以看出,當物理服務(wù)器的數(shù)量很小時,需要更大的虛擬節(jié)點,反之則需要更少的節(jié)點,從圖上可以看出,在物理服務(wù)器有10臺時,差不多需要為每臺服務(wù)器增加100~200個虛擬節(jié)點才能達到真正的負載均衡。
映射表與規(guī)則自定義計算方式
映射表示根據(jù)分庫分表字段的值的查表法來確定數(shù)據(jù)源的方法,一般用于對熱點數(shù)據(jù)的特殊處理,或者在一些場景下對不完全符合規(guī)律的規(guī)則進行補充。
可以通過自定義函數(shù)實現(xiàn)來計算最終的分庫,舉例來說,假設(shè)根據(jù)id取模分成了4個庫,但是對于一些熱點id,我們希望將其獨立到另外的庫,那么通過類似下面的表達式可以完成:
if (id in hotset) {
return nodes;
}
return hash(id);
看了以上關(guān)于掌握分布式緩存負載均衡的規(guī)則處理方法及步驟,如果大家還有什么地方需要了解的可以在億速云行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,億速云技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。