亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

分布式緩存負載均衡的規則處理:虛擬節點對一致性哈希的改進 采用固定哈希算法平衡負載

發布時間:2020-08-07 13:48:51 來源:網絡 閱讀:4011 作者:董利強 欄目:關系型數據庫

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

如果不是緩存數據,而是持久化的數據,那么當擴容的時候,絕大部分數據都要遷移(取模的基數N變化了),這也是不能忍受的。

一致性哈希平衡負載

引入一致性哈希,解決以上增減機器導致負載瞬間整體增大問題

通過在整數范圍內負責各區域的方式,節點負責區域的負載不會隨著增減節點發生大規模的遷移

但是最簡單的一致性哈希,在增減物理機的時候,似乎要增加一倍節點或減去一半節點才能保證各個節點的負載均衡

虛擬節點對一致性哈希的改進

對于一致性哈希的負載分布不平均問題,所以提出:虛擬節點對一致性哈希的改進

4個物理節點可以變成很多個虛擬節點,每個虛擬節點支持連續的哈希環上的一段。而這時如果加入一個物理節點,就會相應加入很多虛擬節點,這些新的虛擬節點是相對均勻地插入到整個哈希環上,這樣,就可以很好的分擔現有物理節點的壓力了;如果減少一個物理節點,對應的很多虛擬節點就會失效,這樣,就會有很多剩余的虛擬節點來承擔之前虛擬節點的工作,但是對于物理節點來說,增加的負載相對是均衡的。

所以可以通過一個物理節點對應非常多的虛擬節點,并且同一個物理節點的虛擬節點盡量均勻分布的方式來解決增加或減少節點時負載不均衡的問題。

至于一個物理節點對應多少的虛擬節點才能達到比較好的均衡效果,有一個圖

分布式緩存負載均衡的規則處理:虛擬節點對一致性哈希的改進 采用固定哈希算法平衡負載

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

映射表與規則自定義計算方式

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

可以通過自定義函數實現來計算最終的分庫,舉例來說,假設根據id取模分成了4個庫,但是對于一些熱點id,我們希望將其獨立到另外的庫,那么通過類似下面的表達式可以完成:

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

六盘水市| 安丘市| 罗田县| 裕民县| 基隆市| 仲巴县| 揭西县| 铅山县| 南涧| 黄石市| 肥东县| 祥云县| 盘山县| 盐津县| 朔州市| 萨迦县| 临城县| 闸北区| 利津县| 巧家县| 吉木乃县| 鄂尔多斯市| 星子县| 建始县| 罗江县| 布拖县| 若尔盖县| 明星| 都匀市| 德州市| 湖北省| 萝北县| 东乡| 沁阳市| 大宁县| 固原市| 南充市| 晋州市| 株洲市| 马公市| 连江县|