欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

一個的單點緩存系統(tǒng)是什么?怎么確定把某個具體的請求轉發(fā)到對應的

2023-11-13    分類: 網站建設

是一個集中式單點緩存系統(tǒng),不具備集群功能。此操作主要由客戶端完成。

所以說到分布式,肯定會提到客戶端??聪聢D:

簡單來說,這里的客戶端做了一個路由功能,負責將不同的請求轉發(fā)到對應的機器(實例)。

那么客戶端如何確定將特定請求轉發(fā)到哪臺機器?

在上面的場景中,我們可以在每次訪問數(shù)據(jù)時根據(jù)緩存key計算出hash值一致性hash算法php開源,然后根據(jù)實際的機器數(shù)量來定位我們想要的機器(這里只是舉例,實際環(huán)境往往更復雜),

而且,在存儲數(shù)據(jù)和獲取數(shù)據(jù)時,同一臺機器定位。它會滿足我們的需求嗎?

是的,正常情況下可以滿足我們的需求,為什么是正常的?

因為在實際生產環(huán)境中肯定會出現(xiàn)一些意外情況。比如上面三臺機器中的一臺突然宕機了,或者我想加一臺,會不會出現(xiàn)這個問題?起來了?

由于機器數(shù)量的變化,所有原來的緩存無法正確定位,無法再使用。這在一些高并發(fā)系統(tǒng)中往往是致命的。

有沒有更好的方法可以在機器宕機的情況下進行平滑升級并盡可能保持正常運行?

這個當然有,就是我們接下來要講的一致性哈希算法。

當我第一次看到一致性哈希算法這個詞時,我腦海中的第一反應就是上面的實現(xiàn)。事實上,事實并非如此。更準確地說,一致性哈希算法是一個全局概念模型,是集群部署中的一個很好的解決方案。

一致性哈希算法()早在1997年就已經提出,目前在很多服務器中被廣泛使用,目前比較流行。

它的最終目標是在移除或添加機器時最小化對現(xiàn)有鍵映射關系的影響。

以下是其實現(xiàn)原理的細目分類,網上已經有詳細說明。

考慮到通常的hash算法是映射到一個32位的key值,也就是0~2^32-1次冪的數(shù)值空間;我們可以把這個空間看作是第一個(0)尾(2^32-1)個連接環(huán),如下圖1所示。

接下來考慮4個對象~,hash函數(shù)計算出的hash值key在環(huán)上的分布如圖2所示。

hash() = key1;

…………

hash() = key4;

基本思路

是將對象映射到相同的哈希值空間,并使用相同的哈希算法。

假設當前有3個單元A、b、C,則映射結果如圖3所示,將它們排列在對應的hash值的hash空間中。

hash(A) = 鍵 A;

…………

hash(C) = 鍵 C;

說到這里,順便提一下哈希計算。一般的方法可以使用機器的Ip地址或機器名作為hash輸入。

既然對象和對象都通過相同的哈希算法映射到哈希值空間,接下來要考慮的是如何將對象映射到它。

在這個環(huán)形空間中,如果從對象的key值開始順時針方向,直到遇到一個,那么就將對象存儲在this上,因為對象的hash值和hash值是固定的,所以這個必須是唯一的和確定的。你沒有找到對象的映射方法嗎? !

繼續(xù)上面的例子(見圖3),那么按照上面的方法,對象就會被存儲在A上;并對應于 C;對應b;

前面說過,先hash再計算余數(shù)的方法帶來的大問題是不能滿足單調性。當有變化時,就會失敗,這會對后端服務器造成巨大的影響?,F(xiàn)在讓我們來分析和分析算法。 .

刪除

考慮假設 b 掛斷了電話。根據(jù)上面提到的映射方法,只有那些沿著 b 逆時針遍歷直到下一個(C)的對象才會受到影響,這些對象原本是映射到 b 上的那些對象。

所以這里我們只需要改變對象,重新映射到C;見下圖

添加

考慮添加一個新的D,假設在這個循環(huán)的hash空間中,D在對象和之間進行映射。此時,唯一受影響的將是那些沿 D 逆時針遍歷直到下一個 (b) 的對象(它們是最初映射到 C 的對象的一部分)。將這些對象重新映射到 D。

所以這里我們只需要改變對象,重新映射到D即可;見下圖

另一個考慮Hash算法的指標是()一致性hash算法php開源,定義如下:

平衡

平衡意味著可以將哈希結果盡可能分配到所有的緩沖區(qū),從而可以使用所有的緩沖區(qū)空間。

哈希算法不保證絕對平衡。如果對象較少,則無法均勻映射對象。例如,在上面的例子中,當只部署了A和C時,4個對象中,A只存儲,C存儲,和;分布很不均勻。

為了解決這種情況,引入了“虛擬節(jié)點”的概念,可以定義如下:

“虛擬節(jié)點”(node)是哈??臻g中一個實際節(jié)點的副本(),一個實際節(jié)點對應幾個“虛擬節(jié)點”,這個對應的數(shù)字也變成了“副本數(shù)”,“虛擬節(jié)點” “ ”在哈希空間中按哈希值排列。

仍然以僅部署A和C的情況為例,如圖4所示,分布并不均勻?,F(xiàn)在我們引入虛擬節(jié)點,將“復制次數(shù)”設置為2,即總共會有4個“虛擬節(jié)點”,A1、A2代表A; C1、C2代表C;假設一個更理想的情況,見下圖

此時對象與“虛擬節(jié)點”的映射關系為:

-> A2; -> A1; -> C1; -> C2;

所以對象和被映射到A,和被映射到C;平衡得到了很大的改善。

引入“虛擬節(jié)點”后,映射關系從{ -> node}轉化為{ -> node}。查詢對象時的映射關系如圖所示。

“虛擬節(jié)點”的hash計算可以采用在對應節(jié)點的Ip地址加上數(shù)字后綴的方法。例如,假設A的Ip地址為202.168.14.241。

在引入“虛擬節(jié)點”之前,計算A的hash值:

Hash("202.168.14.241");

引入“虛擬節(jié)點”后,計算“虛擬節(jié)點”點A1和A2的hash值:

Hash("202.168.14.241#1"); // A1

Hash("202.168.14.241#2"); // A2

基本原則是這些。具體分布的理論分析應該很復雜,但一般不使用。

上面有java版本的例子,可以參考。

轉載了一個pHp版本的實現(xiàn)代碼。

C 語言版本

查看本文的一致性哈希算法:

當前文章:一個的單點緩存系統(tǒng)是什么?怎么確定把某個具體的請求轉發(fā)到對應的
URL分享:http://aaarwkj.com/news4/294204.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供App設計小程序開發(fā)、品牌網站建設微信小程序、商城網站、標簽優(yōu)化

廣告

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

網站托管運營
成年午夜福利片在线观看| 国产精品美女丝袜久久久| 久久国产精品亚洲av四虎| 久草福利视频免费播放| 国产成人亚洲精品午夜国产馆| 成年人收看黄色一二级片| 偷拍偷窥女厕一区二区视频| 成人午夜三级在线观看| 免费日韩黄片在线观看| 亚洲国产中文字幕高清| 97成人在线视频免费播放| 日韩精品人妻一区二区免| 濑亚美莉在线观看一区二区三区| 亚洲永久免费在线观看| 久久精品亚洲精品国产| 国产精品午夜福利91| 清纯美女爱爱高潮av| 高潮国产精品一区二区| 亚洲一品道在线观看| 国产精品乱码中文字幕| 国产麻豆91精品女同性恋| 最新国产成人免费在线视频| 亚洲中文波霸中文字幕| av一级免费在线观看| 日本久久在线观看视频| 日本高清av一区二区| 亚洲国产欧美日韩久久| 五月婷婷丁香噜噜噜噜| 免费一区二区三区精品| 91最新精品丝袜国产在线| 黄色录像三级黄色录像三级黄色| 精品日韩欧美精品日韩| 欧美熟妇在线视频你懂的| 中文字幕av在线日韩| 成人精品午夜福利视频| 久久国产亚洲精品赲碰热| 精品视频日韩在线观看| 亚洲视频在线男人天堂| 欧美乱与老熟妇视频观看| 日韩在线不卡中文字幕| 精品国产av色一区二区|