成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用一致的哈希算法分配臨界負(fù)載

開(kāi)發(fā) 開(kāi)發(fā)工具 算法
運(yùn)行大規(guī)模網(wǎng)絡(luò)服務(wù)(例如內(nèi)容托管)離不開(kāi)負(fù)載平衡,也就是將客戶(hù)端均勻地分配到多個(gè)服務(wù)器上,使得每個(gè)服務(wù)器都不至于過(guò)載。也就是說(shuō),我們需要在一段時(shí)間內(nèi)一致地將客戶(hù)端分配到服務(wù)器。

運(yùn)行大規(guī)模網(wǎng)絡(luò)服務(wù)(例如內(nèi)容托管)離不開(kāi)負(fù)載平衡,也就是將客戶(hù)端均勻地分配到多個(gè)服務(wù)器上,使得每個(gè)服務(wù)器都不至于過(guò)載。此外,在隨時(shí)可以添加或移除客戶(hù)端和服務(wù)器的動(dòng)態(tài)環(huán)境中,較為理想的做法是找到一種不會(huì)隨時(shí)間而大幅改變的分配方案。換而言之,我們需要在一段時(shí)間內(nèi)一致地將客戶(hù)端分配到服務(wù)器。

背景

盡管過(guò)去已經(jīng)研發(fā)出一致的哈希算法理念來(lái)解決動(dòng)態(tài)環(huán)境中的負(fù)載平衡問(wèn)題,但所有之前開(kāi)發(fā)的方案都存在一個(gè)根本性的問(wèn)題:在特定的場(chǎng)景下,它們可能導(dǎo)致許多服務(wù)器上的負(fù)載平衡不能達(dá)到***狀態(tài)。

此外,由于可能隨時(shí)添加或移除客戶(hù)端和服務(wù)器,在做出此類(lèi)改動(dòng)時(shí),我們不希望移動(dòng)太多的客戶(hù)端。因此,動(dòng)態(tài)分配算法不僅必須始終確保正確的負(fù)載平衡,還應(yīng)盡量減少每次對(duì)系統(tǒng)做出改動(dòng)之后所移動(dòng)的客戶(hù)端數(shù)量。當(dāng)每臺(tái)服務(wù)器的容量存在嚴(yán)格的限制時(shí),也就是說(shuō),每臺(tái)服務(wù)器都有嚴(yán)格的容量限制,負(fù)載不得超過(guò)此限制之時(shí),此類(lèi)分配問(wèn)題會(huì)變得更為嚴(yán)峻。通常,我們希望容量接近于平均負(fù)載。

換而言之,我們希望在最終的分配中同時(shí)實(shí)現(xiàn)均勻性和一致性這兩大目標(biāo)。對(duì)于服務(wù)器集固定不變、只有客戶(hù)端集會(huì)更新這種簡(jiǎn)單很多的情形,有大量的文獻(xiàn)介紹了相關(guān)的解決方案,但在本文中,我們討論的解決方案針對(duì)的是客戶(hù)端和服務(wù)器均可隨時(shí)添加和移除的完全動(dòng)態(tài)的情形。

算法

我們可以將服務(wù)器比作垃圾桶,將客戶(hù)端比作球,并借鑒將球隨機(jī)投入垃圾桶的過(guò)程 (balls-to-bins stochastic processes) 這一經(jīng)過(guò)深入研究的模型,采用與之類(lèi)似的抽象方法。均勻性目標(biāo)要求所有垃圾桶所裝的球數(shù)量大致等于平均密度(球數(shù)除以箱子數(shù))。對(duì)于參數(shù) ε,我們將每個(gè)垃圾桶的容量設(shè)置為平均負(fù)載的***或***倍數(shù) (1+ε)。這一額外的容量讓我們可以設(shè)計(jì)出一種能夠同時(shí)滿(mǎn)足均勻性目標(biāo)和一致性目標(biāo)的分配算法。

設(shè)想給定范圍的一組數(shù)字,將其分布到一個(gè)圓圈上。我們對(duì)球應(yīng)用一個(gè)哈希函數(shù),對(duì)垃圾桶應(yīng)用另一個(gè)不同的哈希函數(shù),以獲取該范圍內(nèi)、與該圓圈上不同位置對(duì)應(yīng)的數(shù)字。隨后,我們開(kāi)始按特定的順序分配球,此順序與其哈希值無(wú)關(guān)(假設(shè)基于其 ID)。然后,按順時(shí)針移動(dòng)每個(gè)球并將其分配到***個(gè)有空閑容量的垃圾桶。

哈希函數(shù)

我們分析一下上面的例子,我們使用兩種不同的哈希函數(shù),將 6 個(gè)球和 3 個(gè)垃圾桶隨機(jī)分配到圓圈上的不同位置。對(duì)于本例,我們假設(shè)每個(gè)垃圾桶的容量設(shè)置為 2。我們開(kāi)始按 ID 值的升序分配球。1 號(hào)球按順時(shí)針移動(dòng),進(jìn)入垃圾桶 C。2 號(hào)球進(jìn)入垃圾桶 A。3 號(hào)和 4 號(hào)球進(jìn)入垃圾桶 B。5 號(hào)球進(jìn)入垃圾桶 C。6 號(hào)球順時(shí)針移動(dòng),首先***垃圾桶 B。然而,垃圾桶 B 的容量為 2,而其中已經(jīng)裝有 3 號(hào)和 4 號(hào)球。因此,6 號(hào)球繼續(xù)向前移動(dòng),直至到達(dá)垃圾桶 C,但該垃圾桶也已滿(mǎn)。***,6 號(hào)球進(jìn)入仍有空余位置的垃圾桶 A。

如對(duì)系統(tǒng)進(jìn)行任何更新(插入/刪除球或垃圾桶),則會(huì)重新計(jì)算分配,以保持均勻性目標(biāo)。分析表明小幅更新(插入和刪除少量的球或垃圾桶)會(huì)導(dǎo)致分配狀態(tài)的小幅改變,因此,可滿(mǎn)足一致性目標(biāo)。在我們的論文中,我們展示了在該系統(tǒng)中,每插入或移除一個(gè)球?qū)?huì)導(dǎo)致其他球進(jìn)行 O(1/ε2) 次運(yùn)動(dòng)。最重要的是,此上限與系統(tǒng)中球或垃圾桶的總數(shù)無(wú)關(guān)。因此,如果球或垃圾桶的數(shù)量加倍,此上限不會(huì)改變。上限與球或垃圾桶的數(shù)量無(wú)關(guān),為可伸縮性帶來(lái)了巨大的空間,因?yàn)槲覀儗⑵浒岬礁蟮膶?shí)例中,仍然可以滿(mǎn)足一致性目標(biāo)。下面顯示了更新某個(gè)垃圾桶/服務(wù)器時(shí),每次更新所導(dǎo)致的移動(dòng)(重新分配)次數(shù)模擬結(jié)果。

哈希算法分配臨界負(fù)載

紅色曲線代表移動(dòng)的平均次數(shù),藍(lán)色柱線代表不同 ε 值(X 軸)的方差。虛線代表我們的理論結(jié)果所建議的上限,其非常適合用于預(yù)測(cè)實(shí)際的移動(dòng)次數(shù)。此外,對(duì)于任何 ε 值,我們知道,每個(gè)垃圾桶的負(fù)載至多是平均負(fù)載的 (1+ε) 倍。下面,我們看到不同值 ε=0.1、ε=0.3 和 ε=0.9 條件下垃圾桶的負(fù)載分布情況。

哈希算法分配臨界負(fù)載

▲ 不同 ε 值下的負(fù)載分布。對(duì)于所有范圍的負(fù)載(從 0 到 (1+ε) 倍于平均負(fù)載),負(fù)載分布均接近均勻,許多垃圾桶的負(fù)載等于平均負(fù)載的 (1+ε) 倍。

我們可以看到,這里需要折中考慮,較低的 ε 值有利于確保均勻性,但不利于確保一致性,而較大的 ε 值則有利于確保一致性。較低的 ε 值可確保許多負(fù)載等于平均負(fù)載的 (1+ε) 倍這一硬性容量限制,而其他負(fù)載則為遞減分布。

在提供內(nèi)容托管服務(wù)時(shí),必須做好應(yīng)對(duì)許多不同特性的實(shí)例的準(zhǔn)備。這種一致的哈希方案非常適合此類(lèi)情形,因?yàn)榧幢闶亲钤愀獾那樾蜗拢材苡胁诲e(cuò)的表現(xiàn)。

我們的內(nèi)部研究結(jié)果激動(dòng)人心,我們更欣慰的是,更廣大的社區(qū)發(fā)現(xiàn)我們的解決方案非常有用,足以列入開(kāi)放源代碼,讓任何人都可以使用該算法:

https://github.com/arodland/haproxy

【本文是51CTO專(zhuān)欄機(jī)構(gòu)“谷歌開(kāi)發(fā)者”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者(微信公眾號(hào):Google_Developers)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專(zhuān)欄
相關(guān)推薦

2021-02-05 08:00:48

哈希算法?機(jī)器

2023-06-26 07:17:48

負(fù)載均衡策略Dubbo

2016-12-19 18:41:09

哈希算法Java數(shù)據(jù)

2021-07-27 08:57:10

算法一致性哈希哈希算法

2020-07-20 08:30:37

算法哈希分布式系統(tǒng)

2023-12-09 14:30:29

哈希數(shù)據(jù)分片

2021-02-02 12:40:50

哈希算法數(shù)據(jù)

2023-12-20 08:11:02

Redis節(jié)點(diǎn)通信

2019-11-01 09:13:37

算法哈希緩存

2023-12-12 08:00:50

節(jié)點(diǎn)哈希算法

2018-07-05 09:41:08

一致性哈希算法

2024-12-31 10:55:38

2021-09-15 07:46:42

哈希一致性哈希算法

2023-12-05 14:44:01

2023-06-25 09:44:00

一致性哈希數(shù)據(jù)庫(kù)

2018-03-13 08:20:48

區(qū)塊鏈數(shù)據(jù)安全

2022-01-27 08:31:20

一致性哈希

2022-01-11 17:23:51

算法負(fù)載均衡Hash

2021-11-12 08:38:26

一致性哈希算法數(shù)據(jù)結(jié)構(gòu)

2022-03-22 09:54:22

Hash算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品一区二区三区在线观看国产 | 亚洲精品在线播放 | 国产精品美女久久久久久久网站 | 久久精品亚洲精品 | 2018国产大陆天天弄 | 欧美一区二区三区久久精品 | 综合精品| 天天爱av | 色眯眯视频在线观看 | 99reav| 亚洲天堂一区 | 一区二区免费在线观看 | 亚洲一区二区三区免费在线观看 | 午夜精品久久久久久久久久久久久 | 亚洲精品一区中文字幕乱码 | 午夜影院在线观看视频 | 四虎成人免费电影 | 成人欧美一区二区三区黑人孕妇 | 国产精品久久久久久久7777 | 伊人激情网 | 欧美一区中文字幕 | a级黄色网 | 国产乱码精品一区二区三区忘忧草 | 久久久九九九九 | 国产xxxx岁13xxxxhd| 国产精品成人一区二区三区吃奶 | 欧美激情视频一区二区三区在线播放 | 久久精品一区二区三区四区 | 一级特黄a大片 | 99视频在线免费观看 | 亚洲精品在线视频 | 日韩一区不卡 | 五月香婷婷 | 天天色图 | 欧美 日本 国产 | 黄色三级免费网站 | 国内精品视频在线观看 | 三级成人在线 | 国产精品夜夜夜一区二区三区尤 | 欧美一区视频 | 性高朝久久久久久久3小时 av一区二区三区四区 |