国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化

這篇具有很好參考價(jià)值的文章主要介紹了論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

論文名稱:基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化

摘要

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,互聯(lián)網(wǎng)服務(wù)器集群的負(fù)載能力正面臨前所未有的挑戰(zhàn)。在這樣的背景下,實(shí)現(xiàn)合理的負(fù)載均衡策略變得尤為重要。為了達(dá)到最佳的效率,可以利用一致性哈希算法對集群負(fù)載均衡系統(tǒng)進(jìn)行負(fù)載分配。針對微服務(wù)架構(gòu)的服務(wù)器集群場景,本文分析了集群負(fù)載均衡的特性,并提出了一種基于虛擬節(jié)點(diǎn)的一致性哈希環(huán)設(shè)計(jì)與分割方法,以及基于動(dòng)態(tài)權(quán)值的分配策略。在一致性哈希算法的基礎(chǔ)上,實(shí)現(xiàn)了服務(wù)集群之間的負(fù)載轉(zhuǎn)移,解決了微服務(wù)集群中服務(wù)負(fù)載增多導(dǎo)致負(fù)載不均衡的問題,進(jìn)而防止某些服務(wù)因負(fù)載壓力過大而導(dǎo)致崩潰的情況。實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的一致性哈希算法相比,改進(jìn)后的負(fù)載均衡策略降低了負(fù)載不均衡的概率至原來的31%;并且動(dòng)態(tài)分配策略具有良好的負(fù)載均衡性能,有效地解決了微服務(wù)分布式架構(gòu)的負(fù)載均衡問題。

關(guān)鍵詞:微服務(wù);一致性哈希;負(fù)載均衡;動(dòng)態(tài)權(quán)值

1 引言

隨著信息時(shí)代的發(fā)展,人們對系統(tǒng)網(wǎng)站的使用量越來越多,這對系統(tǒng)服務(wù)器的負(fù)載能力提出了考驗(yàn)。解決負(fù)載問題一般是采用2種方法,一種是使用具有強(qiáng)大硬件配置的后臺(tái)服務(wù)網(wǎng)絡(luò),但因?yàn)楦鞣N原因這種方法很難實(shí)現(xiàn);而另一種便是采用負(fù)載均衡方法來解決服務(wù)負(fù)載過大的問題。負(fù)載均衡廣泛地應(yīng)用于分布式環(huán)境,由于當(dāng)今大數(shù)據(jù)與云計(jì)算的廣泛使用,分布式服務(wù)系統(tǒng)也被開發(fā)人員頻繁使用。其中微服務(wù)架構(gòu)作為分布式架構(gòu)的代表,因?yàn)槠?strong>按功能來劃分服務(wù)的特點(diǎn),會(huì)導(dǎo)致各個(gè)服務(wù)的負(fù)載均衡難以控制,出現(xiàn)有的服務(wù)訪問量過高,而有的服務(wù)基本無人訪問的問題。

目前解決負(fù)載均衡的方法有很多,但是針對微服務(wù)架構(gòu)的負(fù)載均衡方法還在不斷地研究之中。很多企業(yè)都在構(gòu)建自己的微服務(wù)服務(wù)集群,開發(fā)自己的云計(jì)算平臺(tái),因此解決微服務(wù)負(fù)載均衡問題被各大公司提上了日程。

針對微服務(wù)的負(fù)載均衡問題,本文提出一種基于動(dòng)態(tài)權(quán)重的一致性哈希負(fù)載均衡優(yōu)化方法。一致性哈希是一種具有良好橫向擴(kuò)展性的集群動(dòng)態(tài)擴(kuò)展技術(shù)。但是,一致性哈希自身并沒有負(fù)載均衡的措施,很容易導(dǎo)致負(fù)載的傾斜。本文針對電商系統(tǒng),將系統(tǒng)按功能劃分微服務(wù)架構(gòu),部署在 Docker 容器中,提出一種基于虛擬機(jī)節(jié)點(diǎn)的一致性哈希服務(wù)劃分方式,使用動(dòng)態(tài)權(quán)重實(shí)現(xiàn)服務(wù)訪問量過大時(shí),自動(dòng)增加服務(wù)和服務(wù)負(fù)載傳遞。通過與輪詢和傳統(tǒng)一致性哈希算法的實(shí)驗(yàn)對比,表明此方法相比傳統(tǒng)一致性哈希算法在負(fù)載均衡方面有很大的性能提升。

2 相關(guān)工作

針對微服務(wù)集群的負(fù)載均衡問題,當(dāng)使用微服務(wù)時(shí),首先要考慮一些設(shè)計(jì)上的均衡問題,例如平衡微服務(wù)的大小和數(shù)量,平衡單個(gè)微服務(wù)和整個(gè)系統(tǒng)之間的非功能性需求。文獻(xiàn)[1]介紹了一種用 Hash 算法解決這些平衡問題的方案。文獻(xiàn)[2]介紹了一種用于構(gòu)建云應(yīng)用程序的軟件框架 Orle-ans,它運(yùn)用貪婪策略處理負(fù)載平衡。它將請求隨機(jī)分配給服務(wù)器,如果請求被分配給過載的服務(wù)器,服務(wù)器將拒絕請求,然后其被重新分配給另一臺(tái)服務(wù)器;如果服務(wù)器未過載,但服務(wù)器上的請求激活空間過載,則到達(dá)的請求將被發(fā)送到此服務(wù)器上新創(chuàng)建的激活空間中,閑置足夠長時(shí)間的激活空間將被關(guān)閉,此方法類似于本文的微服務(wù)方法。但是,本文添加了權(quán)重屬性以更準(zhǔn)確地測量負(fù)載。Microsoft Azure Service Fabric 的平衡管理器根據(jù)網(wǎng)絡(luò)流量來計(jì)算哈希函數(shù)。哈希函數(shù)需要源 IP、源端口、目標(biāo) IP、目標(biāo)端口和協(xié)議類型等信息,管理器確保來自同一鏈接的所有包都被相同的服務(wù)器接收并且平均分配。文獻(xiàn)[3]提出了一種運(yùn)用一致性哈希加強(qiáng)緩存來減小大型 Web 應(yīng)用程序中故障的負(fù)面影響。Ringpop 是一個(gè) Uber 開發(fā)的使用一致性哈希進(jìn)行負(fù)載均衡的開源庫,它為每個(gè)節(jié)點(diǎn)添加統(tǒng)一數(shù)量的副本點(diǎn),這與本文的方法類似。但是,由于節(jié)點(diǎn)分布不均,無法保證這些點(diǎn)的均勻分布。文獻(xiàn)[4]介紹了一種針對哈希環(huán)節(jié)點(diǎn)的遍歷次數(shù)進(jìn)行優(yōu)化的多重查詢方法;文獻(xiàn)[5]提出了 EFAH Hashing 算法;文獻(xiàn)[6]提出了一種更快捷、占用資源更少的一致性哈希算法,叫做跳躍性一致性哈希算法;文獻(xiàn)[7]提出了一種基于跳躍 Hash 的對象分布算法。文獻(xiàn)[7]研究了基于 Nginx 服務(wù)器的 Web 服務(wù)集群的負(fù)載均衡場景,提出了一種基于動(dòng)態(tài)權(quán)重最小連接算法 DWLC(Dynamic Weighted Least-Connection),根據(jù)每臺(tái)從機(jī)的性能來決定權(quán)重設(shè)置,并根據(jù) Least-Connection 算法來決定最后分配結(jié)果。

容器技術(shù)近些年被廣泛應(yīng)用到分布式系統(tǒng)開發(fā)中。在所有的容器平臺(tái)中,Docker 絕對是最受開發(fā)者歡迎的。2013年,Docker 的推出開啟了應(yīng)用程序開發(fā)的一場革命,有大量的論文使用 Docker 作為環(huán)境的解決方案。文獻(xiàn)[8]測試了本地 Docker 環(huán)境與傳統(tǒng) RedHat 環(huán)境之間的性能差異。該測試表明,在性能之間只有0.4%的可忽略的差異。這意味著 Docker 容器可以在生產(chǎn)環(huán)境中發(fā)揮更大的作用。文獻(xiàn)[9]提出了一種基于 Docker 和 Agave 的網(wǎng)關(guān),在 Docker 的幫助下將網(wǎng)關(guān)更加輕量級化。

3 動(dòng)態(tài)權(quán)重一致性哈希劃分方法

3.1 基本概念

實(shí)現(xiàn)微服務(wù)架構(gòu)的負(fù)載均衡是非常重要的,因?yàn)椴恢缹?huì)有多少用戶進(jìn)行訪問。假設(shè)一個(gè)服務(wù)同時(shí)處理用戶請求的上限為1000,分配20個(gè)服務(wù)為10000名用戶來提供服務(wù)。當(dāng)有20000名用戶發(fā)出請求時(shí),將必須開啟新的服務(wù)來處理新增加的請求,這些服務(wù)中有的服務(wù)是過載的而有的服務(wù)卻是相對空閑的。

本文選擇一致性哈希作為哈希函數(shù)。然而一致性哈希函數(shù)存在一些缺陷。一致性哈希在超過1000個(gè)虛擬節(jié)點(diǎn)的環(huán)境中效果最好,而通常很多應(yīng)用程序的切片鍵太少,所以無法使用一致性哈希來解決負(fù)載均衡問題,因此需要改進(jìn)以彌補(bǔ)這種缺陷。

3.2 虛擬節(jié)點(diǎn)劃分

虛擬節(jié)點(diǎn)是一種被廣泛應(yīng)用于工程場景的概念,通過網(wǎng)絡(luò)映射的方式,在一臺(tái)物理主機(jī)上搭建多個(gè)網(wǎng)絡(luò)連接。本文運(yùn)用虛擬節(jié)點(diǎn),旨在縮短用戶的請求映射到哈希環(huán)上后尋找目標(biāo)節(jié)點(diǎn)所需要遍歷的哈希長度,從而提升分配的效率。

一致性哈希方法的基本原理是將存儲(chǔ)空間抽象成一個(gè)232節(jié)點(diǎn)的將存儲(chǔ)節(jié)點(diǎn)分配到這個(gè)圓上,環(huán)上的節(jié)點(diǎn)都有一個(gè)哈希值。采用同樣的方法求出存儲(chǔ)數(shù)據(jù)的鍵的哈希值,并同樣映射到圓上。然后從數(shù)據(jù)映射到的位置順時(shí)針查找,將數(shù)據(jù)存儲(chǔ)在第一個(gè)找到的服務(wù)器上。

在本文微服務(wù)架構(gòu)場景下,一致性哈希的關(guān)鍵步驟是將每個(gè)服務(wù)映射到圓邊緣上的點(diǎn),但如果服務(wù)的數(shù)量不夠,會(huì)導(dǎo)致分布不均勻,這就會(huì)造成負(fù)載不均的問題。本文用于解決該問題的方法是在用戶與服務(wù)之間增加一個(gè)虛擬層,其哈希環(huán)如圖1所示,虛擬層由大量虛擬節(jié)點(diǎn)組成。使用一致性哈希創(chuàng)建用戶與虛擬節(jié)點(diǎn)之間的映射,虛擬節(jié)點(diǎn)與服務(wù)之間通過簡單取模操作創(chuàng)建映射,通過這種方法就有足夠的虛擬節(jié)點(diǎn)來進(jìn)行一致性哈希操作。虛擬節(jié)點(diǎn)的數(shù)量也很重要,如果虛擬節(jié)點(diǎn)的數(shù)量過少,將會(huì)導(dǎo)致原有的一致性哈希方法負(fù)載均衡效果不明顯;反之,則會(huì)導(dǎo)致找到一個(gè)對應(yīng)用戶的虛擬節(jié)點(diǎn)所需時(shí)間過長。

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

本文根據(jù)用戶請求的IP地址來計(jì)算用戶的key,服務(wù)的key通過服務(wù)的IP地址與端口來計(jì)算。我們使用FNV(Fowler-Noll-Vo)算法[10]來Hash這些信息。FNV算法分為FNV-1,F(xiàn)NV-1a和FNV-03種,目前FNV-0算法已經(jīng)被放棄使用了,而FNV-1a算法只是在FNV-1的基礎(chǔ)上將相乘和異或運(yùn)算進(jìn)行了順序調(diào)換,其它過程和參數(shù)與FNV-1相同,F(xiàn)NV-1a算法在進(jìn)行小數(shù)據(jù)哈希時(shí)有更好的性能(小于4個(gè)字節(jié)),故本文采用FNV-1算法。FNV-1算法能在保持較小沖突率的情況下Hash大量的數(shù)據(jù),因?yàn)樗叨确稚⒌奶匦?,使其適用于Hash一些非常相近的字符串。通過求出的數(shù)據(jù)Hash值,可以盡量保證相同的用戶Hash到相同的服務(wù)上去。使用FNV-1算法來Hash信息如圖2所示。

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

3.3 動(dòng)態(tài)權(quán)重均衡

因?yàn)?strong>一致性哈希算法本身并沒有相應(yīng)的負(fù)載均衡策略,所以本文通過一種基于動(dòng)態(tài)權(quán)值分配的方法對微服務(wù)的負(fù)載進(jìn)行均衡優(yōu)化。分布式系統(tǒng)的負(fù)載均衡是復(fù)雜的,其系統(tǒng)資源占用因用戶而異,一些活躍的用戶需要更多的資源,因此需要為其開辟更多的微服務(wù);相反,一些相對不活躍的用戶很少訪問服務(wù),不需要給他們分配很多微服務(wù)。

我們根據(jù)用戶的訪問情況計(jì)算用戶的權(quán)重,將用戶權(quán)重屬性定義到用戶的數(shù)據(jù)表中,權(quán)重定義為:

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

其中,W是用戶的權(quán)重值,Nu是用戶發(fā)起請求的次數(shù),Ns是請求調(diào)用微服務(wù)的數(shù)量,t是用戶訪問的時(shí)間。Nu,Ns和t由服務(wù)收集和更新,通過自動(dòng)平衡服務(wù)進(jìn)行更改。因?yàn)闄?quán)重短時(shí)間內(nèi)不會(huì)顯著變化,所以可以間隔一段時(shí)間后進(jìn)行更改。

自動(dòng)平衡服務(wù)計(jì)算并保存每個(gè)服務(wù)組中用戶的總權(quán)重。如果一個(gè)用戶想要登錄,并且給用戶分配的權(quán)重超過了給他分配的服務(wù)權(quán)重的上限,自動(dòng)平衡服務(wù)就會(huì)撤銷之前的分配,并且將其分配給一個(gè)新的服務(wù)。如果所有的服務(wù)都達(dá)到了上限,自動(dòng)平衡服務(wù)就會(huì)開辟一個(gè)新的服務(wù),并將用戶分配給這個(gè)服務(wù)。這樣,負(fù)載過高的服務(wù)只能接收那些不活躍的用戶,而活躍的用戶會(huì)分配給負(fù)載相對較低的服務(wù)。

動(dòng)態(tài)權(quán)重均衡算法如算法1所示。

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

如果用戶超過1小時(shí)沒有任何操作,自動(dòng)平衡服務(wù)將從服務(wù)器組中減去此用戶的權(quán)重。如果用戶之后又進(jìn)行操作,自動(dòng)平衡服務(wù)將重復(fù)上述操作。

3.4 服務(wù)間的負(fù)載轉(zhuǎn)移

在分布式架構(gòu)系統(tǒng)中,用戶的遷移量對系統(tǒng)的負(fù)載均衡尤為重要,當(dāng)某些服務(wù)中的用戶訪問量增多時(shí),會(huì)導(dǎo)致服務(wù)的壓力過大,影響系統(tǒng)執(zhí)行效率,嚴(yán)重時(shí)會(huì)導(dǎo)致服務(wù)宕機(jī)崩潰,因此,需要將負(fù)載壓力過大的服務(wù)中的用戶轉(zhuǎn)移到其他壓力相對較小的服務(wù)中去。

當(dāng)用戶登錄或注銷時(shí),服務(wù)的總權(quán)重將變得不平衡。可以關(guān)閉那些空閑的服務(wù),但是有些服務(wù)還是負(fù)載過大。故需要將一些負(fù)載壓力過大服務(wù)中的服務(wù)請求轉(zhuǎn)移到負(fù)載相對小的服務(wù)中。因此,本文設(shè)計(jì)了一種基于動(dòng)態(tài)權(quán)重的服務(wù)之間負(fù)載轉(zhuǎn)移的算法。

負(fù)載轉(zhuǎn)移算法如算法2所示。

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

通過遍歷所有的服務(wù)和用戶,檢查哪些用戶請求需要被轉(zhuǎn)移,哪些服務(wù)可以用來接受這些請求。當(dāng)遍歷所有的服務(wù),沒有服務(wù)滿足接收用戶請求的條件時(shí),系統(tǒng)將自動(dòng)開啟一個(gè)新的服務(wù),用來接收轉(zhuǎn)移的用戶請求。

在該算法中,通過概率搜索來選擇接收用戶轉(zhuǎn)移的服務(wù),而不是通過隨機(jī)選擇和在符合條件的服務(wù)列表中順序選擇。這種方法是由Menon等人[11]首次提出的,該方法按固定順序從多個(gè)處理器中選擇一個(gè)處理器。本文將目標(biāo)換為系統(tǒng)中無順序的微服務(wù),自動(dòng)平衡服務(wù)為空閑服務(wù)列表中的每個(gè)服務(wù)分配一個(gè)概率。服務(wù)被選擇的概率如下所示:

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

其中,Pi 是分配給服務(wù)i 的概率,Lmax是系統(tǒng)中服務(wù)的負(fù)載最大值,Lmin是系統(tǒng)中服務(wù)的負(fù)載最小值,Lavg是系統(tǒng)中服務(wù)的負(fù)載平均值。Z 是一個(gè)與負(fù)載最大值、最小值和平均值相關(guān)的常數(shù)。然后自動(dòng)平衡服務(wù)根據(jù)概率Pi 來選擇接收用戶轉(zhuǎn)移的服務(wù),負(fù)載越大的服務(wù)被選擇的概率越小。在應(yīng)用上,其實(shí)不需要選擇負(fù)載最小的服務(wù)來接收轉(zhuǎn)移的負(fù)載,只需要保證相關(guān)用戶負(fù)載被轉(zhuǎn)移到負(fù)載較少的服務(wù)中去。結(jié)合前面舉一個(gè)例子,假設(shè)一組服務(wù)的負(fù)載為{40,25,30,20,40},得出 Z 為4.1,概率為{0,0.32,0.24,0.44,0}。這意味著負(fù)載為最大負(fù)載值40的服務(wù),不被自動(dòng)平衡服務(wù)識(shí)別為可以接收轉(zhuǎn)移負(fù)載的服務(wù),剩下3個(gè)服務(wù)根據(jù)概率值來被選擇為接收負(fù)載的服務(wù)。

假如上述的服務(wù)組中增加了一個(gè)用戶,其負(fù)載變?yōu)椋矗?,26,30,20,40},那么它的概率變?yōu)?{0,0.32,0.23,0.45,0}。這些服務(wù)的概率與之前的沒有顯著差異,所以不需要在每次增加新用戶時(shí)都對服務(wù)的概率進(jìn)行重新計(jì)算只需要在服務(wù)組的Lmax和Lmin顯著變化時(shí)對概率進(jìn)行重新計(jì)算。

4 實(shí)驗(yàn)結(jié)果及分析

4.1 實(shí)驗(yàn)平臺(tái)及部署

本實(shí)驗(yàn)在VMwareworkstation上進(jìn)行,在VM上安裝并運(yùn)行Docker虛擬機(jī)。使用雙核CPU和8GB內(nèi)存,虛擬機(jī)的系統(tǒng)為Ubuntu16.04.2。將服務(wù)部署在Docker容器中,使用apt-get命令來安裝實(shí)驗(yàn)中需要的軟件。

4.2 實(shí)驗(yàn)方案

為了觀察本文算法的負(fù)載均衡效果,標(biāo)準(zhǔn)差是衡量負(fù)載均衡的一個(gè)流行度量,但是在有些情況下,2組負(fù)載數(shù)據(jù)的標(biāo)準(zhǔn)差σ是相同的,為了解決這一問題,將最大負(fù)載與平均負(fù)載的差除以平均負(fù)載作為衡量負(fù)載均衡的另一指標(biāo)U負(fù)載不平衡的概率為:

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

加入不平衡參數(shù)U 后的負(fù)載如表1所示。

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

這個(gè)標(biāo)準(zhǔn)由負(fù)載最大的服務(wù)來主導(dǎo)。假設(shè)有2個(gè)服務(wù)組,它們的平均負(fù)載都為10,并且它們的標(biāo)準(zhǔn)差也相等。很明顯,負(fù)載最大值為20的服務(wù)組負(fù)載不平衡的概率大于負(fù)載最大值為15的服務(wù)組。前一個(gè)的負(fù)載不平衡率為1.0,而后一個(gè)為0.5。

使用ApacheJMeter作為本文的基準(zhǔn)測試工具。ApacheJMeter是Apache為基準(zhǔn)HTTP服務(wù)器提供的壓力測試工具。它可以模擬多線程并發(fā)請求和測試服務(wù)器負(fù)載壓力。使用Docker容器部署20個(gè)服務(wù)組來進(jìn)行負(fù)載均衡測試。本文設(shè)計(jì)的實(shí)驗(yàn)將會(huì)通過同等時(shí)間長度內(nèi),發(fā)送1×103,5×103,10×103,50×103,100×1035個(gè)數(shù)量級的數(shù)據(jù)請求來觀察在不同的負(fù)載情況下,本文算法的實(shí)際計(jì)算效率和負(fù)載均衡狀況。

4.3 運(yùn)行效率測試

首先需要比較本文算法與傳統(tǒng)一致性哈希算法和輪詢算法的運(yùn)行效率差異,輪詢算法是一種常見的負(fù)載均衡算法,主要是將請求按順序輪流分配到服務(wù)器上,其對比圖如圖3所示。

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

從實(shí)驗(yàn)的結(jié)果來看,本文基于動(dòng)態(tài)權(quán)重的一致性哈希算法在各個(gè)并發(fā)量的情況下效果相對穩(wěn)定,有較好的表現(xiàn)。因?yàn)閭鹘y(tǒng)一致性哈希算法沒有添加虛擬節(jié)點(diǎn)進(jìn)行優(yōu)化,導(dǎo)致每次分配都需要遍歷很長的距離,從而導(dǎo)致額外的開銷增多,隨著訪問量的增加,處理的效率隨之降低。而另外一組輪詢算法因?yàn)槭窃谡麄€(gè)微服務(wù)集群中按順序選擇服務(wù),其在并發(fā)請求數(shù)量增加的情況下處理效果相對穩(wěn)定,但如果集群中服務(wù)節(jié)點(diǎn)數(shù)量增加,會(huì)產(chǎn)生一些分配性能上的損失。

4.4 節(jié)點(diǎn)劃分方法

測試通過比較3種不同的算法來評估本文算法的切分服務(wù)。表2顯示了3種算法的負(fù)載不平衡概率結(jié)果。

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

由表2所示,改進(jìn)后的一致性哈希算法負(fù)載不平衡概率較低,是原有一致性哈希算法的31%。基于虛擬節(jié)點(diǎn)的一致性哈希算法的標(biāo)準(zhǔn)差和不平衡概率較低,明顯小于傳統(tǒng)一致性哈希算法和輪詢算法的。這是因?yàn)閭鹘y(tǒng)一致性哈希算法中沒有足夠的服務(wù)來作為節(jié)點(diǎn),用戶的請求很可能集中訪問某一節(jié)點(diǎn)導(dǎo)致負(fù)載傾斜,所以當(dāng)節(jié)點(diǎn)數(shù)量不足時(shí),只使用一致性哈希算法來進(jìn)行節(jié)點(diǎn)劃分,其結(jié)果是不理想的。而輪詢算法是通過在服務(wù)集群的服務(wù)列表中按順序分配請求,而微服務(wù)集群中的服務(wù)器存在性能上的差異,導(dǎo)致高性能的服務(wù)器負(fù)載低,而低性能的服務(wù)器負(fù)載過高。

4.5 動(dòng)態(tài)權(quán)重方法

測試由于動(dòng)態(tài)加權(quán)的方法是在劃分方法的基礎(chǔ)上改進(jìn)的,所以測試的方法與之前大致相同。區(qū)別是本文創(chuàng)建了10個(gè)虛擬用戶,并設(shè)置了他們的訪問時(shí)間和訪問次數(shù)。使用ApacheJMeter?qū)τ脩暨M(jìn)行了多次重復(fù)實(shí)驗(yàn),結(jié)果見表3,其中 Wavg為權(quán)重的平均值,σw 為權(quán)重的標(biāo)準(zhǔn)差。表3結(jié)果表明,該方法具有良好的負(fù)載均衡性能,其不僅可以均衡用戶的訪問數(shù)量,還可以使用戶的負(fù)載水平達(dá)到一個(gè)相對的平衡。

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

4.6 負(fù)載傳遞方法

測試首先重復(fù)上述步驟,然后通過自動(dòng)平衡服務(wù)發(fā)送一個(gè)信號(hào),使其對服務(wù)集群中的服務(wù)進(jìn)行負(fù)載均衡,其結(jié)果如表4所示,其中 Before為集群中服務(wù)進(jìn)行負(fù)載傳遞前的各項(xiàng)數(shù)值,After?yàn)檫M(jìn)行負(fù)載傳遞后的各項(xiàng)數(shù)值。表4的結(jié)果表明,經(jīng)過負(fù)載傳遞之后,服務(wù)集群中權(quán)重和用戶數(shù)基本分配均等。此方法很大程度上解決了負(fù)載均衡問題。

論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化,負(fù)載均衡論文,論文閱讀,微服務(wù),負(fù)載均衡

5 結(jié)束語

隨著大數(shù)據(jù)時(shí)代的到來,處理負(fù)載均衡問題已經(jīng)成為服務(wù)集群的重要問題,一種有效的負(fù)載均衡方法決定著系統(tǒng)所能發(fā)揮的性能。本文針對分布式系統(tǒng)的負(fù)載均衡問題,對一致性哈希算法進(jìn)行優(yōu)化,提出一種基于動(dòng)態(tài)權(quán)重的一致性哈希處理負(fù)載問題的策略。通過增加一層虛擬節(jié)點(diǎn)的哈希環(huán)來解決傳統(tǒng)一致性哈希算法因?yàn)楣?jié)點(diǎn)不足導(dǎo)致負(fù)載傾斜的問題;并提出了基于權(quán)重分配負(fù)載以及實(shí)現(xiàn)服務(wù)負(fù)載傳遞的方法。從實(shí)驗(yàn)結(jié)果來看,該方法有效地提高了系統(tǒng)的性能,降低了負(fù)載不平衡的概率,實(shí)現(xiàn)了服務(wù)集群中各服務(wù)的負(fù)載和用戶訪問的均衡。與傳統(tǒng)的方法相比,負(fù)載均衡的效果得到了有效的提高。文章來源地址http://www.zghlxwxcb.cn/news/detail-828892.html

到了這里,關(guān)于論文閱讀-基于動(dòng)態(tài)權(quán)重的一致性哈希微服務(wù)負(fù)載均衡優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于一致性引導(dǎo)的元學(xué)習(xí)bootstraping半監(jiān)督醫(yī)學(xué)圖像分割

    基于一致性引導(dǎo)的元學(xué)習(xí)bootstraping半監(jiān)督醫(yī)學(xué)圖像分割

    醫(yī)學(xué)成像取得了顯著的進(jìn)步,但通常需要大量高質(zhì)量的注釋數(shù)據(jù),這些數(shù)據(jù)耗時(shí)且成本高昂。為了減輕這種負(fù)擔(dān),半監(jiān)督學(xué)習(xí)作為一種潛在的解決方案引起了人們的關(guān)注。在本文中,我們提出了一種用于自引導(dǎo)醫(yī)學(xué)圖像分割(MLB-Seg)的元學(xué)習(xí)方法,這是一種解決半監(jiān)督醫(yī)學(xué)圖像

    2024年02月15日
    瀏覽(22)
  • 基于一致性的多無人機(jī)協(xié)同編隊(duì)控制——(1)研究現(xiàn)狀

    基于一致性的多無人機(jī)協(xié)同編隊(duì)控制——(1)研究現(xiàn)狀

    ????????隨著現(xiàn)代化社會(huì)的快速發(fā)展,智能體編隊(duì)在軍事、航空領(lǐng)域都呈現(xiàn)出了巨大的應(yīng)用發(fā)展前景,多智能體編隊(duì)也逐漸成為了自動(dòng)控制領(lǐng)域的研發(fā)熱門。無人機(jī)編隊(duì)控制是多智能體系統(tǒng)自主協(xié)同控制的重要部分,無人機(jī)編隊(duì)從初始位置出發(fā),采用一定的控制算法,通過

    2024年02月05日
    瀏覽(24)
  • 什么是一致性哈希?一致性哈希是如何工作的?如何設(shè)計(jì)一致性哈希?

    如果你有 n 個(gè)緩存服務(wù)器,一個(gè)常見的負(fù)載均衡方式是使用以下的哈希方法: 服務(wù)器索引 = 哈希(鍵) % N ,其中 N 是服務(wù)器池的大小。 讓我們通過一個(gè)例子來說明這是如何工作的。如表5-1所示,我們有4臺(tái)服務(wù)器和8個(gè)字符串鍵及其哈希值。 為了獲取存儲(chǔ)某個(gè)鍵的服務(wù)器,我們

    2024年02月06日
    瀏覽(36)
  • 數(shù)據(jù)庫 SQL Server 檢測到基于一致性的邏輯 I/O 錯(cuò)誤 校驗(yàn)和不正確 解決方法

    數(shù)據(jù)庫 SQL Server 檢測到基于一致性的邏輯 I/O 錯(cuò)誤 校驗(yàn)和不正確 解決方法

    目錄 一、錯(cuò)誤提示信息:? 二、原因分析: 三、解決方法: 四、執(zhí)行完成結(jié)果: 五、重要說明 本文驗(yàn)證是數(shù)據(jù)庫中的baiduAi_0258表無法通過select語句ID條件查詢, 如執(zhí)行 select * from?baiduAi_0258 where ID?=\\\'0000403e-7903-413b-87ab-3c14d0295482\\\'? 提示以下錯(cuò)誤信息。 消息 824,級別 24,狀態(tài)

    2024年02月16日
    瀏覽(20)
  • 從kafka如何保證數(shù)據(jù)一致性看通常數(shù)據(jù)一致性設(shè)計(jì)

    從kafka如何保證數(shù)據(jù)一致性看通常數(shù)據(jù)一致性設(shè)計(jì)

    在數(shù)據(jù)庫系統(tǒng)中有個(gè)概念叫事務(wù),事務(wù)的作用是為了保證數(shù)據(jù)的一致性,意思是要么數(shù)據(jù)成功,要么數(shù)據(jù)失敗,不存在數(shù)據(jù)操作了一半的情況,這就是數(shù)據(jù)的一致性。在很多系統(tǒng)或者組件中,很多場景都需要保證數(shù)據(jù)的一致性,有的是高度的一致性。特別是在交易系統(tǒng)等這樣

    2024年02月19日
    瀏覽(22)
  • 分布式系統(tǒng)的一致性級別劃分及Zookeeper一致性級別分析

    分布式系統(tǒng)的一致性級別劃分及Zookeeper一致性級別分析

    在談到Zookeeper的一致性是哪種級別的一致性問題,以及CAP原則中的C是哪一種一致性級別時(shí)有些疑惑。 下面是大多數(shù)文章中提到的一致性級別 一致性(Consistency)是指多副本(Replications)問題中的數(shù)據(jù)一致性??梢苑譃閺?qiáng)一致性、順序一致性與弱一致性。 1.1 強(qiáng)一致性(Stric

    2024年04月12日
    瀏覽(28)
  • 深入理解高并發(fā)下的MySQL與Redis緩存一致性問題(增刪改查數(shù)據(jù)緩存的一致性、Canal、分布式系統(tǒng)CAP定理、BASE理論、強(qiáng)、弱一致性、順序、線性、因果、最終一致性)

    一些小型項(xiàng)目,或極少有并發(fā)的項(xiàng)目,這些策略在無并發(fā)情況下,不會(huì)有什么問題。 讀數(shù)據(jù)策略:有緩存則讀緩存,然后接口返回。沒有緩存,查詢出數(shù)據(jù),載入緩存,然后接口返回。 寫數(shù)據(jù)策略:數(shù)據(jù)發(fā)生了變動(dòng),先刪除緩存,再更新數(shù)據(jù),等下次讀取的時(shí)候載入緩存,

    2024年03月20日
    瀏覽(29)
  • Redis 原理緩存過期、一致性hash、雪崩、穿透、并發(fā)、布隆、緩存更新策略、緩存數(shù)據(jù)庫一致性

    Redis 原理緩存過期、一致性hash、雪崩、穿透、并發(fā)、布隆、緩存更新策略、緩存數(shù)據(jù)庫一致性

    redis的過期策略可以通過配置文件進(jìn)行配置 redis會(huì)把設(shè)置了過期時(shí)間的key放在單獨(dú)的字典中,定時(shí)遍歷來刪除到期的key。 1).每100ms從過期字典中 隨機(jī)挑選20個(gè),把其中過期的key刪除; 2).如果過期的key占比超過1/4,重復(fù)步驟1 為了保證不會(huì)循環(huán)過度,導(dǎo)致卡頓,掃描時(shí)間上限

    2024年02月08日
    瀏覽(31)
  • 緩存數(shù)據(jù)一致性探究

    緩存數(shù)據(jù)一致性探究

    緩存是一種較低成本提升系統(tǒng)性能的方式,自它面世第一天起就備受廣大開發(fā)者的喜愛。然而正如《人月神話》中的那句經(jīng)典的“沒有銀彈”中所說,軟件工程的設(shè)計(jì)沒有銀彈。 就像每一次發(fā)布上線修復(fù)問題的同時(shí),也極易引入新的問題,自緩存誕生的第一天起, 緩存與數(shù)

    2024年02月16日
    瀏覽(29)
  • Redis 數(shù)據(jù)一致性

    當(dāng)我們在使用緩存時(shí),如果發(fā)生數(shù)據(jù)變更,那么你需要同時(shí)操作緩存和數(shù)據(jù)庫,而它們兩個(gè)又分屬不同的系統(tǒng),因此無法做到同時(shí)操作成功或失敗,因此在并發(fā)讀寫下很可能出現(xiàn)緩存與數(shù)據(jù)庫數(shù)據(jù)不一致的情況 理論上可以通過分布式事務(wù)保證同時(shí)操作成功或失敗,但這會(huì)影響

    2024年02月03日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包