免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
五分鐘了解一致性hash算法

一致性哈希算法設(shè)計(jì)目標(biāo)是為了解決因特網(wǎng)中的熱點(diǎn)問題,現(xiàn)在也被廣泛應(yīng)用在分布式系統(tǒng)中。

比如針對(duì)負(fù)載均衡問題,對(duì)hash值取模的算法擴(kuò)展性差,當(dāng)增加或者減少服務(wù)器時(shí),映射關(guān)系可能會(huì)出現(xiàn)問題,采用一致性hash算法,就能較好的解決該問題。

Hash值取模算法存在的問題

比如,我們有海量的圖片存儲(chǔ)在服務(wù)器上,假如,現(xiàn)在有4臺(tái)服務(wù)器,我們可以根據(jù)圖片名稱,采用hash算法,決定圖片存儲(chǔ)在哪臺(tái)服務(wù)器

如果現(xiàn)在需要增加服務(wù)器,那么存取圖片的服務(wù)器的算法就會(huì)發(fā)生改變,比如增加一臺(tái)服務(wù)器后,算法變?yōu)?/span>hash(a.jpg)/5,這時(shí)候計(jì)算結(jié)果不一定還是2,那么圖片的位置就要發(fā)生改變。同理,減少服務(wù)器的話,也會(huì)存在相同問題。而且,所有的服務(wù)器都會(huì)受到影響。

一致性Hash算法

一致性Hash算法將哈希值映射的空間表示成一個(gè)虛擬圓環(huán),一般可以設(shè)置映射的范圍是0----232-1,也就是說,我們得到的hash值要對(duì)232取模。該hash環(huán)可表示如下:

假如我們有四臺(tái)服務(wù)器,我們可以選擇服務(wù)器的ip或主機(jī)名作為關(guān)鍵字進(jìn)行哈希,然后取模,每臺(tái)機(jī)器就能hash環(huán)上確定固定位置如下圖所示:

例如有Object A、Object B、Object C、Object D四個(gè)數(shù)據(jù),經(jīng)過哈希運(yùn)算及取模后,在環(huán)空間上的位置如下圖所示:

從此位置沿環(huán)順時(shí)針“行走”,第一臺(tái)遇到的服務(wù)器就是其應(yīng)該定位到的服務(wù)器。也就是說Object A定位到Node A,Object B定位到Node B,Object C定位到Node C,Object D定位到Node D。

如果Node C這臺(tái)服務(wù)器出現(xiàn)問題宕機(jī),那么Objcet C定位到Node D這臺(tái)服務(wù)器,所以當(dāng)某臺(tái)服務(wù)器出問題時(shí),只會(huì)對(duì)順時(shí)針方向的前一臺(tái)機(jī)器產(chǎn)生影響,本例中,只會(huì)對(duì)Node D有影響。

同理,如果增加一臺(tái)服務(wù)器Node X,計(jì)算后,定位到如下圖所示位置:

那么Object C就會(huì)定位到Node X,這種情況,只會(huì)對(duì)順時(shí)針方向的Node C產(chǎn)生影響,不會(huì)影響其他服務(wù)器。

一致性Hash的缺點(diǎn)

當(dāng)服務(wù)器節(jié)點(diǎn)比較少的時(shí)候會(huì)出現(xiàn)一致性hash算法傾斜的問題(大部分?jǐn)?shù)據(jù)存在一臺(tái)服務(wù)器上)。在不改變服務(wù)器節(jié)點(diǎn)個(gè)數(shù)的前提下,一般解決方案增加虛擬節(jié)點(diǎn)(即對(duì)每一個(gè)服務(wù)器根據(jù)一致性hash算法計(jì)算多個(gè)值,每個(gè)計(jì)算結(jié)果在環(huán)上定位一個(gè)服務(wù)節(jié)點(diǎn)),在定位數(shù)據(jù)時(shí),就可以根據(jù)虛擬節(jié)點(diǎn),定位到實(shí)際服務(wù)器。

總結(jié)

一致性哈希算法對(duì)于節(jié)點(diǎn)的增減都只需重定位環(huán)空間中的一小部分?jǐn)?shù)據(jù),具有較好的容錯(cuò)性和可擴(kuò)展性。

本文由好程序員編輯上傳。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
一致性哈希算法原理
一致性哈希算法學(xué)習(xí)
Redis 學(xué)習(xí)(三)redis服務(wù)器集群、客戶端分片
分布式數(shù)據(jù)緩存中的一致性哈希算法
常用負(fù)載均衡策略分析
openstack入門之swift基礎(chǔ)三:swift能干什么,不能干什么及相關(guān)概念
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服