摘" 要: 針對(duì)靜態(tài)負(fù)載均衡算法的不足,利用一致性哈希算法的優(yōu)勢(shì),提出了一種基于動(dòng)態(tài)一致性哈希的微服務(wù)集群負(fù)載均衡,以服務(wù)器的內(nèi)存使用率作為一個(gè)關(guān)鍵要素去反映當(dāng)前服務(wù)器的負(fù)載情況,從而為哈希環(huán)上的服務(wù)器動(dòng)態(tài)分配請(qǐng)求,實(shí)現(xiàn)負(fù)載均衡,以有效降低系統(tǒng)的請(qǐng)求延遲,使系統(tǒng)具有更高的可用性,有效提高系統(tǒng)的服務(wù)能力和資源利用率。最后進(jìn)行了動(dòng)態(tài)一致性哈希算法與輪詢算法、加權(quán)輪詢算法及一致性哈希算法的對(duì)比實(shí)驗(yàn),結(jié)果表明動(dòng)態(tài)一致性哈希算法的性能優(yōu)于其他三種算法。
關(guān)鍵詞: 微服務(wù);負(fù)載均衡;動(dòng)態(tài)一致性哈希;響應(yīng)時(shí)間
中圖分類(lèi)號(hào): TP393.0
文獻(xiàn)標(biāo)識(shí)碼: A" 文章編號(hào): 2096-3998(2024)05-0061-06
收稿日期:2023-11-13" 修回日期:2023-12-21
*通信作者:劉曉燕(1964—),女,云南昆明人,博士,副教授,主要研究方向?yàn)檐浖こ碳皵?shù)據(jù)庫(kù)應(yīng)用、基于構(gòu)件的實(shí)時(shí)軟件系統(tǒng)分析與設(shè)計(jì)。
引用格式:白海,劉曉燕.基于動(dòng)態(tài)一致性哈希的微服務(wù)集群負(fù)載均衡.陜西理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2024,40(5):61-66.
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)量的急劇增加,對(duì)軟件負(fù)載能力提出了更高的要求。負(fù)載均衡是決定系統(tǒng)性能的關(guān)鍵因素之一。負(fù)載均衡的目標(biāo)是減少操作響應(yīng)時(shí)間,最大限度地利用資源,以較低的成本提高設(shè)備效率。
微服務(wù)架構(gòu)中的服務(wù)器通常都是采用集群的形式部署去提高承載訪問(wèn)量,完成單個(gè)服務(wù)器無(wú)法完成的任務(wù)。服務(wù)器集群通過(guò)松散耦合的計(jì)算機(jī)軟件和(或)硬件的緊密協(xié)作來(lái)完成計(jì)算工作。從某種意義上講,服務(wù)器集群可以看作是一臺(tái)單獨(dú)的服務(wù)器。集群系統(tǒng)中的每臺(tái)服務(wù)器通常被稱(chēng)為節(jié)點(diǎn),節(jié)點(diǎn)通常通過(guò)局域網(wǎng)或其他方式連接。服務(wù)器集群通常用于提高單臺(tái)服務(wù)器的計(jì)算速度和可靠性。一般來(lái)說(shuō),服務(wù)器集群比單個(gè)服務(wù)器或工作站具有更高的性價(jià)比。
但是,在構(gòu)建這樣的微服務(wù)集群時(shí),各個(gè)服務(wù)器之間的資源利用率往往存在很大的差別,導(dǎo)致集群內(nèi)部的性能顯著降低。要解決這一問(wèn)題,需要設(shè)計(jì)一種高效的負(fù)載均衡機(jī)制,使網(wǎng)絡(luò)中的用戶請(qǐng)求能夠在較短的時(shí)間內(nèi)完成有效分配。在此基礎(chǔ)上,進(jìn)一步提高系統(tǒng)的負(fù)載能力和資源利用率。
在微服務(wù)架構(gòu)下,集群調(diào)度和擴(kuò)展的粒度降低到微服務(wù)實(shí)例級(jí)別,服務(wù)通信、調(diào)用等微服務(wù)治理技術(shù)面臨更大的挑戰(zhàn)。利用微服務(wù)架構(gòu)中的負(fù)載均衡技術(shù),能夠有效地減少請(qǐng)求時(shí)延,使系統(tǒng)具有更高的可用性,有效提高系統(tǒng)的服務(wù)能力和資源利用率。
負(fù)載均衡的目標(biāo)是減少操作響應(yīng)時(shí)間,最大限度地利用資源,以較低的成本提高設(shè)備效率。與此同時(shí),它還旨在為未來(lái)規(guī)模將會(huì)增加并需要更多資源的應(yīng)用程序提供可伸縮性和多功能性,以及對(duì)需要立即實(shí)現(xiàn)的任務(wù)進(jìn)行優(yōu)先級(jí)排序。
1" 相關(guān)工作
為了提高軟件的負(fù)載能力,通常有兩種解決方法:
(1)通過(guò)配置足夠高的硬件,從而保證服務(wù)器配置足夠負(fù)擔(dān)用戶的需求,這種方式被稱(chēng)為硬件負(fù)載均衡。但是這種方法成本較高,同時(shí)當(dāng)用戶量不足的時(shí)候也有可能用不到那么多的計(jì)算機(jī)資源,從而造成資源的浪費(fèi)。
(2)采用軟件負(fù)載均衡的方法來(lái)解決微服務(wù)集群負(fù)載失衡的問(wèn)題。
微服務(wù)架構(gòu)中的服務(wù)器通常都是采用集群的形式部署去提高承載訪問(wèn)量,執(zhí)行一個(gè)單獨(dú)的服務(wù)器無(wú)法完成的任務(wù)。然而,在建立這種微服務(wù)集群的過(guò)程中,各服務(wù)器的資源利用效率常常會(huì)有較大差異,從而造成集群內(nèi)的性能大幅下降。為了解決這個(gè)問(wèn)題,就必須采用一個(gè)有效的負(fù)載均衡機(jī)制,將請(qǐng)求合理地分配到后端服務(wù)器。從而實(shí)現(xiàn)微服務(wù)集群的負(fù)載均衡,提升系統(tǒng)的負(fù)載能力和資源利用率。
在微服務(wù)架構(gòu)Spring Cloud中,負(fù)載均衡機(jī)制在Ribbon中進(jìn)行部署,其默認(rèn)的算法為輪詢選擇算法,該算法將用戶請(qǐng)求依次發(fā)送給微服務(wù)集群的服務(wù)器上,具備平衡、高效、實(shí)施簡(jiǎn)單、易于橫向擴(kuò)展的優(yōu)點(diǎn)。但是并不會(huì)關(guān)心服務(wù)器實(shí)際的連接數(shù)和當(dāng)前的系統(tǒng)負(fù)載。所以當(dāng)服務(wù)請(qǐng)求量過(guò)大時(shí)就有可能導(dǎo)致某個(gè)性能較差的服務(wù)器負(fù)載過(guò)大,從而導(dǎo)致微服務(wù)集群負(fù)載不均衡,影響到微服務(wù)集群的整體性能。
王永亮[4]提出了一種基于二次映射的哈希負(fù)載均衡算法,可以實(shí)現(xiàn)同構(gòu)或者異構(gòu)的存儲(chǔ)服務(wù)器集群的負(fù)載均衡。但是當(dāng)集群服務(wù)器數(shù)量發(fā)生變化時(shí),總體性能將會(huì)受到影響。
韓朋花等[5]介紹了一種改進(jìn)的加權(quán)輪詢算法,其權(quán)重是在服務(wù)器運(yùn)行時(shí)的負(fù)載因子基礎(chǔ)上進(jìn)行計(jì)算的,并且是動(dòng)態(tài)變化的,因此,它可以更好地反映出服務(wù)器上的負(fù)載差異,滿足了負(fù)載均衡的需要。對(duì)加權(quán)輪詢算法進(jìn)行了優(yōu)化,使得該算法有了很大的改善。但在每隔一段時(shí)間就進(jìn)行一次負(fù)載因子的采集,就增加了系統(tǒng)的開(kāi)銷(xiāo)。
高振斌等[6]提出了一種改進(jìn)的基于加權(quán)最小連接數(shù)的負(fù)載均衡算法,將終端連接數(shù)量作為影響因素,對(duì)服務(wù)器各項(xiàng)性能參數(shù)做全面分析。這種算法是一種動(dòng)態(tài)的負(fù)載均衡算法,可以根據(jù)服務(wù)器的實(shí)時(shí)連接進(jìn)行動(dòng)態(tài)調(diào)整。但是需要計(jì)算每個(gè)請(qǐng)求的斷開(kāi)和連接,增加了集群的復(fù)雜性。
Hellemans等[7]針對(duì)負(fù)載均衡服務(wù)器的可用內(nèi)存提出了空腔法,當(dāng)正確設(shè)置到達(dá)速率時(shí),具有內(nèi)存的空腔過(guò)程的響應(yīng)時(shí)間分布與沒(méi)有內(nèi)存的空腔過(guò)程響應(yīng)時(shí)間分布相同。
Vhatkar等[8]采用鯨魚(yú)算法結(jié)合獅子算法,提出了一種新的混合模型,分別考慮閾值距離、均衡集群使用、系統(tǒng)故障和總網(wǎng)絡(luò)距離等目標(biāo),給出了資源優(yōu)化配置的解決方案。在實(shí)現(xiàn)容器資源優(yōu)化分配的同時(shí),也實(shí)現(xiàn)了微服務(wù)集群的負(fù)載均衡。
2" 一致性哈希算法
一致性哈希算法是由麻省理工學(xué)院的Karger等人于1997年針對(duì)分布式緩存問(wèn)題而提出的,通常用于負(fù)載平衡。一致性哈希算法將整個(gè)哈希值空間映射成一個(gè)虛擬的圓環(huán)[9],整個(gè)哈??臻g的取值范圍為0~232-1。哈??臻g按順時(shí)針?lè)较蛞来闻帕校?與232-1在零點(diǎn)中方向重合。利用哈希算法計(jì)算出服務(wù)請(qǐng)求所相應(yīng)的hash值,按照hash值的位置,沿著哈希環(huán)順時(shí)針?lè)较虿檎曳?wù)器,得到的第一個(gè)服務(wù)器就是相應(yīng)的處理請(qǐng)求服務(wù)器。當(dāng)新增一臺(tái)新的服務(wù)器時(shí),受影響的服務(wù)請(qǐng)求僅為新添加的服務(wù)器與其環(huán)空間中前一臺(tái)的服務(wù)器(即沿著逆時(shí)針?lè)较蛴龅降牡谝慌_(tái)服務(wù)器)之間的數(shù)據(jù),其他服務(wù)器與服務(wù)請(qǐng)求均不會(huì)受影響。
根據(jù)用戶請(qǐng)求的IP地址來(lái)計(jì)算用戶的key,服務(wù)的key通過(guò)服務(wù)的IP地址與端口來(lái)計(jì)算,并選用FNV-1算法來(lái)hash這些信息。FNV-1算法對(duì)各個(gè)服務(wù)器進(jìn)行hash,使得每臺(tái)服務(wù)器都在哈希環(huán)上確定了位置。然后,基于哈希值Hashi,該哈希值根據(jù)資源的key決定,在環(huán)上順時(shí)針尋找離Hashi最近的服務(wù)器節(jié)點(diǎn)(第一個(gè)大于或等于Hashi),并將其與Hashi相對(duì)應(yīng),在資源和服務(wù)器節(jié)點(diǎn)間建立映射關(guān)系。
通過(guò)將一致性哈希算法中的虛擬節(jié)點(diǎn)虛擬化以實(shí)現(xiàn)服務(wù)器集群負(fù)載平衡。構(gòu)建好的哈希環(huán)如圖1所示。
基于一致性哈希算法的負(fù)載均衡技術(shù)具有良好的橫向可擴(kuò)展性,可以有效解決數(shù)據(jù)節(jié)點(diǎn)變化和數(shù)據(jù)所有權(quán)問(wèn)題。一致性哈希算法具有一定的容錯(cuò)性以及可拓展性,以圖1哈希環(huán)為例,假設(shè)Node4宕機(jī)了,Node1、Node2以及Node3不會(huì)受到影響,只是以前映射到Node4上的Objd被重新定位到了Node1上,如圖2所示。
同理,如果增加了一臺(tái)服務(wù)器Node5,只是之前定位到Node1上的Obje被定位到了新增的Node5上,對(duì)其余Objx沒(méi)有影響,如圖3所示。
綜上所述,一致性哈希算法在增加或減少節(jié)點(diǎn)時(shí),僅需要在環(huán)空間內(nèi)重新定位少量的數(shù)據(jù),該方法具有良好的容錯(cuò)能力和可擴(kuò)展性。
3" 動(dòng)態(tài)一致性哈希算法
如果一致性哈希算法中的服務(wù)節(jié)點(diǎn)太少,則會(huì)因?yàn)楣?jié)點(diǎn)的不均勻分布而導(dǎo)致數(shù)據(jù)偏移(大部分被緩存的對(duì)象都會(huì)被存儲(chǔ)在某一臺(tái)服務(wù)器上)。這一刻,我們會(huì)看到A節(jié)點(diǎn)上有很多的數(shù)據(jù),而B(niǎo)節(jié)點(diǎn)上的數(shù)據(jù)很少。為了解決此問(wèn)題,將虛節(jié)點(diǎn)機(jī)制引入一致性哈希算法中,該機(jī)制將為每個(gè)服務(wù)器節(jié)點(diǎn)計(jì)算多重哈希,每個(gè)計(jì)算結(jié)果位置都放置一個(gè)服務(wù)節(jié)點(diǎn),稱(chēng)為虛擬節(jié)點(diǎn),從而有效地減小了數(shù)據(jù)的偏斜。
具體操作可以通過(guò)為服務(wù)器IP或主機(jī)名后加入編號(hào)來(lái)實(shí)現(xiàn)。數(shù)據(jù)定位算法不變,只需要增加一步:虛擬節(jié)點(diǎn)到實(shí)際點(diǎn)的映射。所以加入虛擬節(jié)點(diǎn)之后,即使在服務(wù)節(jié)點(diǎn)很少的情況下,也能做到數(shù)據(jù)的均勻分布。
通常情況下,服務(wù)器內(nèi)存利用率是一個(gè)負(fù)載節(jié)點(diǎn)存儲(chǔ)空間的剩余容量最直觀的體現(xiàn),同時(shí)也是提供服務(wù)的子節(jié)點(diǎn)負(fù)載能力的關(guān)鍵衡量標(biāo)準(zhǔn)。使用內(nèi)存使用率,可以對(duì)節(jié)點(diǎn)的空間使用情況和目前的存儲(chǔ)空間下的負(fù)載能力進(jìn)行分析。服務(wù)器的內(nèi)存使用率是影響負(fù)載均衡的一個(gè)關(guān)鍵要素,可以表達(dá)為
Pu=CUiCTi×100%,
其中Pu為u服務(wù)器的內(nèi)存使用率,CUi為u服務(wù)器的內(nèi)存使用量,CTi為u服務(wù)器的內(nèi)存容量。當(dāng)分配的請(qǐng)求分配到了Pugt;85%以上的負(fù)載服務(wù)器時(shí),會(huì)將其分配給一個(gè)其他負(fù)載服務(wù)器上,使其保證每個(gè)服務(wù)器內(nèi)存不會(huì)被占用滿,當(dāng)全部服務(wù)器內(nèi)存占用大于85%時(shí),則會(huì)啟用新的負(fù)載服務(wù)器。
動(dòng)態(tài)一致性哈希負(fù)載均衡定期收集服務(wù)器節(jié)點(diǎn)信息,通過(guò)計(jì)算服務(wù)器節(jié)點(diǎn)的服務(wù)器內(nèi)存使用率,反映出服務(wù)器節(jié)點(diǎn)的負(fù)載情況,其動(dòng)態(tài)一致性哈希負(fù)載均衡算法流程如圖4所示。
在所有的服務(wù)器節(jié)點(diǎn)上,負(fù)載均衡組件通過(guò)數(shù)據(jù)傳輸獲得性能參數(shù),該性能參數(shù)即服務(wù)器內(nèi)存使用情況,然后利用動(dòng)態(tài)一致性哈希算法對(duì)這些性能參數(shù)進(jìn)行處理。每隔一段時(shí)間,通過(guò)對(duì)服務(wù)器節(jié)點(diǎn)接收到的數(shù)據(jù)進(jìn)行運(yùn)算,將基準(zhǔn)性能參數(shù)轉(zhuǎn)換為規(guī)范的性能指標(biāo),就可以獲得虛擬節(jié)點(diǎn)的數(shù)量。在此期間內(nèi),如果有一個(gè)新的服務(wù)器節(jié)點(diǎn)從周期外加入到一個(gè)新的服務(wù)器集群中,則需要重新評(píng)估該服務(wù)器集群的基本性能參數(shù)。對(duì)服務(wù)器節(jié)點(diǎn)的性能進(jìn)行標(biāo)準(zhǔn)化處理,并通過(guò)對(duì)硬盤(pán)的內(nèi)存使用率進(jìn)行量化負(fù)載計(jì)算負(fù)載權(quán)重。最后,利用Send函數(shù)向負(fù)載均衡組件發(fā)送虛節(jié)點(diǎn)數(shù)目。
4" 系統(tǒng)負(fù)載能力測(cè)試
通過(guò)一種采用微服務(wù)架構(gòu)設(shè)計(jì)的云藥房系統(tǒng)為基準(zhǔn),其系統(tǒng)運(yùn)行環(huán)境如下:AMD Ryzen5 4600H 6核CPU、16 GB內(nèi)存、512 GB固態(tài)硬盤(pán)、Windows 10操作系統(tǒng),采用jdk為1.8.0_271的Java語(yǔ)言、8.0.31的MySQL數(shù)據(jù)庫(kù)及5.0.12的Redis緩存數(shù)據(jù)庫(kù)。通過(guò)Apache JMeter來(lái)測(cè)試并發(fā)性。Apache JMeter是一種用Java語(yǔ)言寫(xiě)成的工具,它可以用來(lái)進(jìn)行系統(tǒng)的功能性界面和性能測(cè)試,利用Apache JMeter對(duì)高并發(fā)請(qǐng)求和網(wǎng)絡(luò)負(fù)載進(jìn)行仿真,設(shè)置微服務(wù)集群中服務(wù)器數(shù)量為10臺(tái),其中5臺(tái)內(nèi)存為8 GB,5臺(tái)內(nèi)存為16 GB。
圖5為采用動(dòng)態(tài)一致性哈希算法與采用輪詢算法、加權(quán)輪詢算法及一致性哈希算法進(jìn)行負(fù)載均衡的響應(yīng)時(shí)間和最大吞吐量的對(duì)比圖。橫軸是集群的每秒請(qǐng)求數(shù),單位為個(gè),縱軸是響應(yīng)時(shí)間,單位為ms。如圖所示,當(dāng)請(qǐng)求數(shù)量增加時(shí),4種算法的響應(yīng)時(shí)間也隨之增加。當(dāng)小于1 000時(shí),輪詢算法與一致性哈希算法的響應(yīng)時(shí)間相對(duì)偏高,而加權(quán)輪詢算法與動(dòng)態(tài)一致性哈希算法兩種算法的響應(yīng)時(shí)間基本相同。此時(shí),用戶受到的延遲幾乎可以忽略不計(jì)。在用戶請(qǐng)求數(shù)大于1 000的情況下,動(dòng)態(tài)一致性哈希算法的響應(yīng)時(shí)間增長(zhǎng)幅度剛開(kāi)始增大,但該算法響應(yīng)時(shí)間的增加幅度與輪詢、加權(quán)輪詢和一致性哈希算法相比,它的響應(yīng)時(shí)間也更短。當(dāng)用戶請(qǐng)求數(shù)量持續(xù)增長(zhǎng)時(shí),4種不同的算法在響應(yīng)時(shí)間上的差距越來(lái)越大。
從上述分析中我們可以看出,在請(qǐng)求數(shù)量很少的情況下,本文算法的響應(yīng)時(shí)間優(yōu)于輪詢算法與一致性哈希算法,與加權(quán)輪詢算法基本相同。當(dāng)請(qǐng)求數(shù)較高時(shí),該算法的優(yōu)勢(shì)得到體現(xiàn),響應(yīng)時(shí)間對(duì)比其余3種算法要快。
5" 結(jié)論
本文首先對(duì)負(fù)載均衡進(jìn)行概述,表明負(fù)載均衡的目標(biāo),及靜態(tài)算法與動(dòng)態(tài)算法的優(yōu)缺點(diǎn)。再對(duì)目前關(guān)于微服務(wù)服務(wù)器集群的算法現(xiàn)狀進(jìn)行介紹。其次闡述了一致性哈希算法的歷史、算法思想以及本文以用戶的IP地址作為key值,采用FNV-1算法進(jìn)行哈希,從而在環(huán)上順時(shí)針找到最接近Hashi的節(jié)點(diǎn),并建立資源與節(jié)點(diǎn)之間的映射關(guān)系。表明一致性哈希方法在增加或減少節(jié)點(diǎn)時(shí),僅需要在環(huán)空間內(nèi)重新定位少量的數(shù)據(jù),具有良好的容錯(cuò)能力和可擴(kuò)展性。
最后根據(jù)一致性哈希算法的不足,采用動(dòng)態(tài)方法,以服務(wù)器的內(nèi)存使用率作為一個(gè)關(guān)鍵要素去反應(yīng)當(dāng)前服務(wù)器的負(fù)載情況,從而動(dòng)態(tài)為哈希環(huán)上的服務(wù)器分配請(qǐng)求,實(shí)現(xiàn)負(fù)載均衡,提高系統(tǒng)的負(fù)載能力。再進(jìn)行與輪詢算法、加權(quán)輪詢算法與一致性哈希算法的對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明動(dòng)態(tài)一致性哈希算法的性能優(yōu)于其他3種算法。
[" 參" 考" 文" 獻(xiàn)" ]
XUAN Zhenguo.Load Balancing Technology Based On Consistent Hashing For Database Cluster Systems//Proceedings of the 2012 National Conference on Information Technology and Computer Science,2012.
SHVAYKA A I.Load Balancing in IoT Applications Using Consistent Hashing.Modelling and Simulation in Engineering,2016,38(5):75-83.
張婷婷,汪峰坤,葛靜.一種基于輪詢機(jī)制的SDN-WLAN負(fù)載均衡算法.佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,34(3):420-422.
王永亮.基于二次映射的哈希負(fù)載均衡方法.信息記錄材料,2018,19(12):234-235.
韓朋花,葉青,姜曉明,等.改進(jìn)加權(quán)輪詢負(fù)載均衡算法研究.長(zhǎng)春理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2018,41(3):131-134.
高振斌,潘亞辰,華中,等.改進(jìn)的基于加權(quán)最小連接數(shù)的負(fù)載均衡算法.科學(xué)技術(shù)與工程,2016,16(6):81-85.
HELLEMANS T,HOUDT Van B.Performance analysis of load balancing policies with memory.Performance Evaluation,2022,153:102259.
VHATKAR K N,BHOLE G P.Optimal container resource allocation in cloud architecture:A new hybrid model.Journal of King Saud University-Computer and Information Sciences,2022,34(5):1906-1918.
姚墨涵,謝紅薇.一致性哈希算法在分布式系統(tǒng)中的應(yīng)用.電腦開(kāi)發(fā)與應(yīng)用,2012,25(7):1-2.
經(jīng)成,謝軍.基于微服務(wù)架構(gòu)的負(fù)載均衡優(yōu)化算法及實(shí)現(xiàn).南昌大學(xué)學(xué)報(bào)(理科版),2022,46(4):399-404.
[責(zé)任編輯:謝 平]
Load balancing of microservice clusters based on dynamic consistent hashing
BAI Hai," LIU Xiaoyan
Faculty of Information Engineering and Automation, Kunming University of Science and Technology, Kunming 650504, China
Abstract:" In view of the shortcomings of the static load balancing algorithm and the advantages of the consistent hashing algorithm, this paper proposes a microservice cluster load balancing based on dynamic consistent hashing, which takes the memory usage of the server as a key element to reflect the current load of the server, so as to dynamically allocate requests to the servers on the hash ring and realize load balancing, thus effectively reducing the request delay of the system and making the system have higher availability, and effectively improve the service capacity and resource utilization of the system. Finally, Finally, a comparative experiment was conducted between the dynamic consistent hashing algorithm and the round-robin algorithm, weighted round-robin algorithm, and consistent hashing algorithm. The experimental results show that the performance of the dynamic consistent hash algorithm is better than that of the other three algorithms.
Key words:" microservices; load balancing; dynamic consistency hashing; response time