亚洲网站免费_国产一区二区三区在线看麻豆 _国产精品毛片一区二区三区 _麻豆精品网站

CDN緩存服務器圖片存儲一致性hash算法的理解

hash做緩存,假如有三臺服務器,1,2,3,有三萬張圖片,我想將圖片平均緩存到我三臺服務器上,一個服務器大概一萬張,怎么去實現這個辦法呢,可以用hash來取余數進行操作,加入我們是以圖片的名字作為key進行hash計算,hash (圖片名稱)%N 其中N為我們服務器的個數,我們將hash(圖片名稱)這一部分進行計算后得到的是一個正數,然后除以服務器的數目進行取余數,結果將會是0,1,2三個數,對應我們的服務器的編號,當我們作為客戶端去請求圖片的時候,圖片已經進行過hash運算了,直接找到對應服務器的編號進行圖片的訪問,這樣解決了我需要遍歷所有的服務器進行查找。

CDN緩存服務器圖片存儲一致性hash算法的理解-DVBCN

  那如果我緩存的服務器的數量減少或者增加,如果還是按照原來的算法走,必定會造成緩存數據的丟失,會去向后端的服務器去請求,如果有一臺緩存服務器發生了故障,那我原來緩存的位置必定會發生改變,原來本該運算后要進行緩存到某一臺服務器的圖片,現在找不到對應緩存服務器,肯定會發生緩存的雪崩

  所以出現了一致性hash算法相當于將服務器和圖片分別hash到我的hash環上進行就近緩存,hash環就是對2^32次方進行取模,從0開始一直到2^32,均勻分布在一個圓環(一個比方),0的順時針方向的第一位為1,逆時針方向第一位為2^32,大概如下圖

CDN緩存服務器圖片存儲一致性hash算法的理解-DVBCN

  具體就是比方我有三個服務器A,B ,C對其進行 hash (服務器Aip)%2^32 得出來的一定是一個整數,而且一定是在0--2^32之間,那么這個數就會分布在hash環上對應的位置,相同的B,C都一樣,假設我們hash過后ABC的位置如下圖

CDN緩存服務器圖片存儲一致性hash算法的理解-DVBCN

  然后我們將需要緩存圖片的key進行hash,它的hash值也會分布在我的hash環上,

CDN緩存服務器圖片存儲一致性hash算法的理解-DVBCN

  如上圖,我hash到了A和C之間,圖片的存儲規則是順時針方向的存儲,所以應該存儲到A,如果有四張的話如下圖

CDN緩存服務器圖片存儲一致性hash算法的理解-DVBCN

  那如果我們的hash算法將服務器和hash的圖片存放位置比較相近,類似于;

CDN緩存服務器圖片存儲一致性hash算法的理解-DVBCN

  所有的緩存都集中存儲到了A一臺,只有5到了B,那么這樣A的壓力就不言而喻,沒有均勻可言了,辛虧hash環可以添加緩存服務器的虛擬節點,類似于虛擬機,一臺實機可以虛擬多臺,類似于這樣:

CDN緩存服務器圖片存儲一致性hash算法的理解-DVBCN

  這樣的話就會盡可能的把緩存都均衡放在各個服務器

  一致性hash算法的優勢在哪:一個是當我有一臺緩存節點掛了之后,緩存的存儲不會受太大的影響,

CDN緩存服務器圖片存儲一致性hash算法的理解-DVBCN

  我們將b節點拿走,本來要在B節點存儲的3,因為找不到B服務器,而遵循規則緩存到C,而4的緩存節點不會發生改變,這就是一致hash的優點,如果發生服務器的增加或者減少只有部分的緩存會失效,不造成全盤皆輸的可能

  一致hash到此結束。

相關文章
北京商務局發實施方案:取消IDC、CDN、ISP等電信領域外資股比限制,積極推動外資企業申請資質
北京商務局發實施方案:取消IDC、CDN、I…
阿里云容蓓:DCDN助力云原生時代的應用構建及最佳實踐
阿里云容蓓:DCDN助力云原生時代的應用…
騰訊云程文杰:全球數字化深度發展? Tencent Cloud EdgeOne乘風而上
騰訊云程文杰:全球數字化深度發展? Ten…
中國廣電省網公司罕見取得全國范圍的內容分發(CDN)、互聯網數據中心(IDC)資質為哪般?
中國廣電省網公司罕見取得全國范圍的內…
中國聯通深夜發文:與騰訊創投新設合營企業將壯大CDN、邊緣計算產業鏈
中國聯通深夜發文:與騰訊創投新設合營…
中國聯通與騰訊公司擬新設混改公司,發力CDN和邊緣計算業務
中國聯通與騰訊公司擬新設混改公司,發…
我還沒有學會寫個人說明!
主站蜘蛛池模板: 翁源县| 修武县| 德令哈市| 开化县| 乐山市| 渝中区| 郑州市| 洪湖市| 花垣县| 邵东县| 墨竹工卡县| 平远县| 邓州市| 雷州市| 社会| 烟台市| 固原市| 林州市| 贞丰县| 凤山县| 平凉市| 嘉兴市| 广东省| 永兴县| 蕲春县| 宁南县| 合阳县| 温宿县| 木里| 大化| 连山| 乐陵市| 吉首市| 乌鲁木齐市| 承德县| 汉川市| 古交市| 调兵山市| 阿瓦提县| 兴海县| 林甸县|