亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向微服務架構(gòu)的云系統(tǒng)負載均衡機制

        2021-09-15 07:35:42施凌鵬周俊松
        計算機工程 2021年9期
        關鍵詞:實例數(shù)據(jù)中心架構(gòu)

        施凌鵬,朱 征,周俊松,李 鑫,李 靜

        (1.國網(wǎng)上海市電力公司 信息通信公司,上海 200072;2.國網(wǎng)上海市電力公司 電力科學研究院,上海 200437;3.南京航空航天大學 計算機科學與技術學院,南京 210023)

        0 概述

        單體架構(gòu)應用在面臨當前互聯(lián)網(wǎng)環(huán)境的快速迭代和用戶需求的迅猛變化情形時,開發(fā)成本與運維成本大幅上升,因此,越來越多的應用采用微服務的架構(gòu)。微服務架構(gòu)(Microservices Architecure,MSA)是面向服務架構(gòu)(Service-Oriented Architecure,SOA)的一種變體[1],是將一個大型的復雜軟件應用拆分為多個松耦合的微服務,集群調(diào)度和擴容的粒度降低到微服務實例級別,能夠降低開發(fā)、部署和擴縮容的成本[2]。

        在降低服務粒度的同時,服務治理將面臨更大的挑戰(zhàn)。請求通常需要通過若干個與之相關的微服務的處理才能夠?qū)⒄_預期的結(jié)果返回給用戶。而在復雜微服務框架下如何治理請求以及優(yōu)化請求的處理時延是本文研究的目標。

        本文通過負載均衡與加入微服務鏈感知的方法降低微服務架構(gòu)中服務請求的時延,并提出基于微服務鏈感知的負載均衡算法。闡述微服務架構(gòu)部署場景,繪制云數(shù)據(jù)中心的架構(gòu)拓撲圖,并給出微服務實例、微服務鏈和主機描述及用戶請求延遲的衡量標準,以減少微服務鏈在數(shù)據(jù)中心網(wǎng)絡中的通信成本。最后基于形式化的模型,根據(jù)Python 編寫模擬實驗,并設置多組接近于真實環(huán)境的不同實驗。

        1 相關工作

        微服務概念是由LEWIS 等于2014 年定義的,它是一種架構(gòu)風格[3]和SOA 的具體實現(xiàn)[4],主要思想是將傳統(tǒng)單體應用根據(jù)業(yè)務邏輯和其功能拆分成一系列可以被獨立設計、開發(fā)、部署、運維的軟件服務單元,并且在遵守服務邊界的前提下,各個微服務能夠彼此相互配合與協(xié)作來實現(xiàn)整個系統(tǒng)的價值[5]。

        MSA 是指根據(jù)整個應用系統(tǒng)的業(yè)務需求,通過預先劃定服務邊界、定義微服務進行服務組合而形成的企業(yè)級分布式應用體系架構(gòu)[6]。文獻[7-8]研究傳統(tǒng)云計算架構(gòu)中的任務調(diào)度與負載均衡問題,而針對微服務的治理未進一步擴展。文獻[9]研究基于服務網(wǎng)格的微服務治理方案,但沒有涉及對服務鏈治理問題。

        文獻[10-11]對容器運行時的系統(tǒng)進行了基于事件的性能分析,提出在以容器為基礎的微服務系統(tǒng)中,負載均衡對微服務具有顯著影響。文獻[12]通過沙盒化微服務構(gòu)建性能模型,合理地為不同服務配置容量,從另一種角度對負載問題提出了可行的解決方案。文獻[13]提出基于消息隊列的面向鏈的負載均衡算法,將HTTP 與消息隊列結(jié)合使用,但在微服務系統(tǒng)中會導致額外的操作復雜度,增加開銷。

        本文在上述研究的基礎上,針對微服務鏈調(diào)用中存在共享微服務競爭的問題,從負載均衡的角度入手分析云化微服務架構(gòu)下的特點,提出微服務鏈感知的請求負載均衡算法,并通過模擬實驗從微服務鏈上的平均請求延遲和主機請求負載均衡的角度對算法進行有效評估。

        2 微服務鏈感知的請求負載均衡算法

        本節(jié)從微服務鏈式調(diào)用的場景出發(fā),通過預先對請求對應的微服務鏈進行建模分析,獲取最優(yōu)的服務執(zhí)行路徑,實現(xiàn)對負載配置和請求延遲的綜合優(yōu)化。

        2.1 應用場景描述

        2.1.1 數(shù)據(jù)中心網(wǎng)絡

        本文從實際場景出發(fā),對云數(shù)據(jù)中心的微服務通信組合問題展開研究。數(shù)據(jù)中心網(wǎng)絡拓撲結(jié)構(gòu)如圖1 所示。

        圖1 數(shù)據(jù)中心網(wǎng)絡拓撲結(jié)構(gòu)Fig.1 Structure of data center network topology

        微服務以容器的方式進行部署并運行在主機上,同一主機可同時部署多個微服務實例,因此將主機Hi描述為一個微服務實例的子集,即Hi?I。微服務實例與主機之間的關系如式(1)所示:

        2.1.2 微服務鏈

        微服務鏈是微服務的有序集合,為本文微服務通信組合的主要研究對象,以符號Ci表示,i為該微服務鏈的唯一標識。

        用戶請求Ri由特定微服務鏈提供響應,i是用戶請求的唯一標識。用戶請求將唯一對應一個微服務鏈,式(2)描述了該映射關系:

        圖2 所示為用戶請求由一個基本的微服務鏈對應的過程。其中,箭頭代表數(shù)據(jù)傳輸?shù)姆较颍^上的符號DA代表微服務,MA代表傳送給微服務,MB代表請求的數(shù)據(jù)大小,DB、DC、DD以此類推,在服務鏈式調(diào)用的場景下,服務間的傳輸時延同樣會對服務性能產(chǎn)生較大影響,因此通過DA計算傳輸時延,并以此作為鏈路權重。

        圖2 微服務鏈簡單拓撲Fig.2 Simplified topology of microservice chain

        微服務鏈可以表示如下:

        其中:Mi表示微服務實例對象,i為唯一性標識。

        2.1.3 微服務與微服務實例

        微服務鏈與微服務實例之間存在多對多的關系,通過式(4)描述微服務與微服務鏈聯(lián)系:

        2.2 系統(tǒng)模型

        復雜網(wǎng)絡中頻繁多次的請求是造成服務時延增加的主要原因[11],本文將負載均衡問題拓展為微服務環(huán)境下服務通信組合調(diào)用問題,以微服務鏈為研究對象,尋求服務鏈式組合情況下的性能優(yōu)化策略。

        本節(jié)將影響微服務環(huán)境中負載配置和請求響應效率的關鍵因素予以形式化處理(見表1),并基于此構(gòu)建面向微服務鏈的請求響應模型。

        表1 參數(shù)的形式化描述Table 1 Formalized description of the parameters

        為簡化抽象系統(tǒng),本文重點研究微服務環(huán)境下的服務請求問題[14],設定微服務實例所獲資源相同,且主機環(huán)境同構(gòu),并將主機任務(即微服務實例運行的任務)串行化。

        所有發(fā)向負載均衡器的請求由一個特定隊列接收,并對隊列中的請求分別構(gòu)建微服務通信組合模型,通過代價函數(shù)遍歷組合實例得到代價最小的實例組合[15],該組合在一段時間內(nèi)具有有效性。

        2.3 衡量指標

        衡量指標是結(jié)果分析中的重要因素,針對云系統(tǒng)下的微服務架構(gòu)環(huán)境,本文選取微服務鏈上的平均請求延遲和主機負載作為衡量指標[16]。

        微服務鏈上的平均請求延遲計算方法如式(5)所示:

        其中:li是單個請求的延遲時間[17-18],如式(6)所示,主要由等待執(zhí)行時間和請求數(shù)據(jù)傳輸時間組成:

        其中:h(k)為k實例所在的主機;Q(x)為所有在主機x隊列中的請求;i(r)為獲取請求r所在的實例。

        除等待時間外,數(shù)據(jù)傳輸時間對請求響應的性能同樣也有顯著影響,因此為傳輸鏈路設置權重如式(9)所示:

        傳輸速度使用2 個微服務實例之間的距離進行衡量,如式(10)所示:

        綜上,可計算出每個微服務鏈上的平均請求延遲。平均請求延遲代表整個微服務架構(gòu)中服務質(zhì)量方面的性能,若微服務鏈上的平均請求延遲越小,則證明該架構(gòu)的服務質(zhì)量越高。

        2.4 算法設計

        微服務鏈感知的請求負載均衡算法如算法1所示。

        算法1微服務鏈感知的請求負載均衡算法

        輸入用戶請求集合R

        輸出請求微服務實例的順序

        算法1 首先接收到用戶的請求,通過用戶請求內(nèi)容分析出功能所屬的微服務鏈,根據(jù)微服務鏈確定該鏈上的微服務類型以及它們的依賴關系;再借助微服務鏈中的數(shù)據(jù)傳輸信息,分析出首要解決的微服務通信組合,并使用代價函數(shù)對其組合中的實例進行遍歷計算,尋找出所得代價最小的實例組合,使用該實例組合對該請求的微服務實例順序進行更新;然后繼續(xù)去尋找需要優(yōu)化的微服務通信組合。重復上述過程,直到所有微服務都選中了實例,最終將接受請求并將微服務實例請求順序與請求本身一并轉(zhuǎn)發(fā),完成對該請求的負載均衡。

        為簡化分析算法的時間復雜度,假定請求對應的微服務鏈中微服務集與數(shù)據(jù)集數(shù)目均為n,數(shù)據(jù)集DSSet 預先排序降低之后的時間開銷,算法的時間復雜度主要由排序算法和while 循環(huán)的時間開銷共同決定,因此總的時間復雜度為O(nlbn)。

        3 仿真實驗結(jié)果與性能分析

        模擬實驗根據(jù)Python 編寫,通過面向?qū)ο蟮木幊谭妒絹韺ι衔牡膯栴}模型進行抽象和編寫。當前有很多的云模擬器如CloudSim[19],但大部分云模擬器都是面向虛擬機模式的,較少有支持容器這種新型的進程隔離“虛擬化”方式,也因為問題模型較為獨特,所以參考文獻[20]采用自定義調(diào)度器的方案。

        3.1 參數(shù)設置

        以上文設計的模型為基礎,模擬實驗中的網(wǎng)絡架構(gòu)與數(shù)據(jù)中心網(wǎng)絡架構(gòu)一致,即1 個路由器、2 個交換機、3 臺主機。在該模擬實驗中,模擬的時間片的單位為ms,數(shù)據(jù)量大小為KB,對于某個微服務而言,其返回數(shù)據(jù)量范圍為1~100 KB,其實例處理請求的時間范圍為1~10 ms。通過在程序初始化中描述不同的微服務來確定其返回的數(shù)據(jù)量大小與單一請求處理時長。對于數(shù)據(jù)中心網(wǎng)絡之間的傳輸鏈路,本文粗略地將其認為是一個定值,也可以理解為是其鏈路的權重。對于同主機的2 個實例,它們之間通信的速率主要受到磁盤吞吐量的限制;對于同機架不同主機的2 個實例,它們之間的通信速率主要受到網(wǎng)卡吞吐量的限制;最后對于不同機架實例之間的通信,速率應該是三者最低的,而且考慮到數(shù)據(jù)中心骨干網(wǎng)絡的壓力。具體實驗參數(shù)如表2 所示。

        表2 實驗參數(shù)設置Table 2 Parameters setting of experiment

        本文主機同構(gòu)的串行化假設主機性能相同,不需要使用加權輪詢(RR)。因此,輪詢的負載均衡算法成為本文的對比算法。

        3.2 微服務鏈上的平均請求延遲評估

        本文通過設置不同的微服務鏈、不同的實例放置方法、不同的請求發(fā)送機制和不同的負載均衡算法進行多次實驗。

        3.2.1 3 條微服務鏈

        本文微服務實例放置方式如圖3 所示,設置的3 條微服務鏈如圖4 所示。

        圖3 3 條微服務鏈實例放置方式Fig.3 Instances placement way of three microservice chains

        圖4 3 條微服務鏈簡化拓撲Fig.4 Simplified topology of three microservice chains

        3 條微服務鏈分別為:C1={MA,MB,MC,MD},C2={ME,MF,MG},C3={MH,MF,MI,MJ}。

        相關的微服務詳細信息如表3 所示。

        表3 3 條微服務列表Table 3 List of three microservices

        本文使用對3 條微服務鏈輪流請求的請求模式,每2 個時間片(2 ms)向系統(tǒng)中發(fā)送1 個服務請求,并通過式(5)計算每個微服務鏈的平均請求延遲,得到如圖5 所示的結(jié)果。

        圖5 3 條微服務鏈的平均請求延遲Fig.5 Average request latency of three microservice chains

        本文提出的負載均衡方法的微服務平均延遲低于輪轉(zhuǎn)調(diào)度的方法(-18.47%,-12.30%,-2.62%),取得了較好的結(jié)果。

        3.2.2 1 條微服務鏈

        除了3 條微服務鏈的情況外,本文還設置了僅有1 條微服務鏈的實驗(C1={MA,MB,MC,MD}),以驗證本文算法在不同頻次請求下的性能,微服務詳細信息如表4 所示。

        表4 1 條微服務列表Table 4 List of one microservice

        對于1 條微服務鏈的情況,本文設置2 種請求模式來衡量性能,部署模式如圖6 所示。首先向系統(tǒng)發(fā)送中等頻次的輪流請求,即每3 個時間片(3 ms)發(fā)送1 個請求,并通過式(5)計算微服務鏈的平均請求延遲,得到如圖7 所示的結(jié)果。

        圖6 1 條微服務實例的放置方式Fig.6 Instances placement way of one microservice chain

        圖7 中頻次請求的平均延遲Fig.7 Average latency of medium frequency requests

        從圖7 可以看出,本文的方法能夠極大地降低請求延遲,降低幅度達到73.6%。

        為測試極端情況的性能(如高并發(fā)情景),向系統(tǒng)發(fā)送高等頻次的輪流請求,即每2 個時間片(2 ms)發(fā)送一個請求,得到如圖8 所示的實驗結(jié)果。

        圖8 高頻次請求的平均延遲Fig.8 Average latency of high frequency requests

        從圖8 可以看出,本文方法即使在高負載情況下也有更好的性能。綜合上述實驗結(jié)果,在復雜多條微服務鏈的環(huán)境中,也就是更接近于真實微服務架構(gòu)的環(huán)境中,該算法能夠有效降低請求延遲。

        3.3 主機負載情況評估

        由于容器進程隔離的特性,容器能夠與宿主機共享內(nèi)核和計算資源?;?.2 節(jié)所提的串行化假設,當請求任務在執(zhí)行時,則能夠利用當前主機所有可用的計算資源。因此,本文只要通過每個主機的請求等待序列,并根據(jù)微服務劃分的執(zhí)行速度權重,就能夠很好地衡量出主機實際的負載情況。

        3.3.1 3 條微服務鏈請求模式

        對于3 種微服務鏈輪流請求的請求模式,每2 個時間片(2 ms)向系統(tǒng)中發(fā)送一個服務請求,并在每個時間片中記錄每個主機的負載值,得到的結(jié)果如圖9 所示(彩圖效果見《計算機工程》官網(wǎng)HTML 版,下同)。

        圖9 3 條微服務鏈分別請求下的主機負載情況Fig.9 Host load conditions under separate requests of the three microservice chains

        從圖9 可以看出,本文方法能夠使主機之間的負載更加均衡,而輪轉(zhuǎn)調(diào)度方法會造成嚴重的負載傾斜。

        3.3.2 1 條微服務鏈部署模式

        對于1 條微服務鏈的部署模式,首先需要向系統(tǒng)發(fā)送中等頻次的請求,即每3 個時間片(3 ms)發(fā)送一個請求,然后通過記錄每個時間片上主機的負載值,得到如圖10 所示的1 條微服務鏈中頻次請求下主機負載情況。

        圖10 1 條微服務鏈中頻次請求下的主機負載情況Fig.10 Host load conditions under separate requests of one microservice chain

        圖10(a)為使用本文算法的主機負載情況,圖10(b)為使用輪轉(zhuǎn)算法的主機負載情況,可以看到在2 組實驗中本文方法主機之間的負載會更均衡,而輪轉(zhuǎn)調(diào)度方法還是會存在嚴重的負載傾斜。

        通過向系統(tǒng)發(fā)送高頻次的請求,即每2 個時間片(2 ms)發(fā)送1 個請求,得到如圖11 所示的主機負載情況。從圖11 可以看出,在2 組實驗中,本文方法主機之間的負載會更均衡,而輪轉(zhuǎn)調(diào)度方法還是會存在嚴重的負載傾斜。

        圖11 1 條微服務鏈高頻次請求下的主機負載情況Fig.11 Host load conditions under single high-frequency request of one microservice chain

        3.4 實驗結(jié)果

        本文通過在4 個3 條微服務鏈和4 個1 條微服務鏈上不同的實驗,根據(jù)不同的實例設置方式和請求模式,得到了較為接近真實環(huán)境的實驗結(jié)果。

        在3 條微服務鏈的環(huán)境中,使用本文負載均衡策略的實驗在微服務鏈的平均請求延遲上要比對比策略更低,主機的負載情況會比對比算法更加均衡。同時,本文算法在微服務鏈之間相互有交叉(即相關)的情況下表現(xiàn)更加優(yōu)異,能夠在極大地降低微服務鏈請求平均延遲的同時,保證主機負載的均衡。

        在1 條微服務鏈的環(huán)境中,當微服務實例較少且擺放方案不均勻時,本文微服務鏈感知的負載均衡策略能夠有效地降低微服務鏈的請求時延,并且在高并發(fā)場景下仍有較好的表現(xiàn),能夠保證在接近于真實微服務架構(gòu)環(huán)境中的復雜微服務鏈下,本文的負載均衡策略可有效降低請求延遲。

        在主機負載方面,本文算法能夠取得較為均衡的結(jié)果,而輪轉(zhuǎn)調(diào)度方式會經(jīng)常出現(xiàn)嚴重的負載傾斜。

        4 結(jié)束語

        本文從微服務架構(gòu)的服務調(diào)用與負載均衡出發(fā),結(jié)合傳統(tǒng)云計算架構(gòu)中的負載均衡和任務調(diào)度算法,根據(jù)微服務賦予云環(huán)境下的感知能力,提出微服務鏈感知的請求負載均衡算法。通過降低微服務架構(gòu)中請求延遲時間平衡主機之間的負載,解決服務鏈調(diào)用中存在共享微服務競爭的問題。實驗結(jié)果表明,該算法能夠在復雜微服務請求調(diào)用鏈下降低請求平均延遲,有效均衡主機的工作負載。隨著容器技術和微服務架構(gòu)的不斷發(fā)展,軟件行業(yè)將對微服務治理提出更高的優(yōu)化目標,由于微服務基于容器運行時的特點,下一步將微服務部署與優(yōu)化相結(jié)合,提出更適用于特定場景的部署方案。

        猜你喜歡
        實例數(shù)據(jù)中心架構(gòu)
        基于FPGA的RNN硬件加速架構(gòu)
        酒泉云計算大數(shù)據(jù)中心
        功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應用和實踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        民航綠色云數(shù)據(jù)中心PUE控制
        電子測試(2018年11期)2018-06-26 05:56:24
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
        電信科學(2017年6期)2017-07-01 15:45:17
        基于云計算的交通運輸數(shù)據(jù)中心實現(xiàn)與應用
        一種基于FPGA+ARM架構(gòu)的μPMU實現(xiàn)
        完形填空Ⅱ
        完形填空Ⅰ
        Overlay Network技術在云計算數(shù)據(jù)中心中的應用
        河南科技(2014年11期)2014-02-27 14:16:49
        国产午夜精品视频观看| 久久综合给日咪咪精品欧一区二区三| 伊人亚洲综合网色AV另类| av网站在线观看二区| 日本精品视频二区三区| 国产性生交xxxxx无码| 久久精品夜夜夜夜夜久久| 成人无码网www在线观看| 在线观看亚洲视频一区二区| 伊人久久大香线蕉午夜av| 香蕉视频在线精品视频| 亚洲自拍愉拍| 国产成人高清视频在线观看免费| 久久国产劲爆∧v内射| 免费a级毛片无码a∨免费软件| 一本一本久久久久a久久综合激情| 人妻av中文字幕精品久久| 国产精品久久久天天影视| a级国产乱理伦片在线播放| 亚洲成av人在线观看无堂无码 | 亚洲国产精品成人久久久| 又白又嫩毛又多15p| 在线毛片一区二区不卡视频| 男女啪啪啪的高清视频| 日本少妇浓毛bbwbbwbbw| 欧美日韩精品一区二区在线视频 | 国产精品自拍视频在线| 中文字幕人妻熟女人妻| 亚洲av永久无码精品秋霞电影影院| 中文字幕亚洲区第一页| 午夜大片在线播放观看| 亚洲熟妇av日韩熟妇在线| 无码精品一区二区三区超碰| 精品久久精品久久精品| 丁香婷婷激情综合俺也去| 亚洲人成人77777网站| 久久精品国产亚洲av麻豆会员| 欧美又大又色又爽aaaa片 | 国产台湾无码av片在线观看| 亚洲精品美女久久久久久久 | 久久亚洲精品国产av|