羅歡, 姜唯, 劉明偉, 徐律冠
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司, 廣州 510700)
目前無線通信技術(shù)不斷發(fā)展,越來越多的人使用無線網(wǎng)絡(luò)實現(xiàn)通信。然而,當(dāng)網(wǎng)絡(luò)資源出現(xiàn)大量任務(wù)請求時,會對網(wǎng)絡(luò)環(huán)境造成一定的影響,出現(xiàn)網(wǎng)絡(luò)資源負(fù)載不均衡的現(xiàn)象,從而導(dǎo)致網(wǎng)絡(luò)任務(wù)超載或空閑的情況發(fā)生[1-2]。與此同時,因為在空間和時間上網(wǎng)絡(luò)用戶任務(wù)呈現(xiàn)出多變性,所以在同構(gòu)和異構(gòu)網(wǎng)絡(luò)之間任務(wù)負(fù)載分布不均,從而影響網(wǎng)絡(luò)的性能表現(xiàn)。為此,網(wǎng)絡(luò)資源負(fù)載均衡優(yōu)化逐漸成為一種趨勢,不僅可以對復(fù)雜的無線接入網(wǎng)絡(luò)實施管理,而且能夠有效實現(xiàn)高質(zhì)量、低成本的運(yùn)行,且在每個網(wǎng)絡(luò)既定資源中,更加均勻、合理地對網(wǎng)絡(luò)任務(wù)進(jìn)行分配,以此提升網(wǎng)絡(luò)資源整體性能[3]。所以,優(yōu)化資源負(fù)載具有重要意義。
現(xiàn)階段針對網(wǎng)絡(luò)資源負(fù)載均衡優(yōu)化方法,相關(guān)領(lǐng)域中外學(xué)者已經(jīng)進(jìn)行了大量研究,并取得了一定的研究成果。肖明等[4]提出了基于霧計算的無線網(wǎng)絡(luò)負(fù)載均衡優(yōu)化方法。通過云服務(wù)層、霧計算層和終端層,建立無線網(wǎng)絡(luò)架構(gòu),采用霧計算,構(gòu)建無線網(wǎng)絡(luò)負(fù)載均衡優(yōu)化模型,實現(xiàn)無線接入點(access point, AP)和硬件資源負(fù)載均衡。該方法能夠有效降低無線網(wǎng)絡(luò)資源不均衡度,但存在無線網(wǎng)絡(luò)資源負(fù)載均衡執(zhí)行時間較長的問題。徐俊等[5]提出了基于改進(jìn)混合蛙跳算法的云工作流負(fù)載均衡調(diào)度優(yōu)化方法。根據(jù)任務(wù)優(yōu)先級劃分層級,建立云工作流分層調(diào)度模型。利用時間貪心算法,結(jié)合混合蛙跳算法,對混合蛙跳算法進(jìn)行改進(jìn),求解云工作流調(diào)度模型,實現(xiàn)云工作流負(fù)載均衡調(diào)度優(yōu)化。該方法的資源負(fù)載均衡執(zhí)行時間較短,但網(wǎng)絡(luò)資源均衡度較低。Asghari等[6]提出了基于珊瑚礁優(yōu)化和強(qiáng)化學(xué)習(xí)的云環(huán)境資源負(fù)載平衡的聯(lián)合應(yīng)用方法。將珊瑚礁優(yōu)化算法與強(qiáng)化學(xué)習(xí)算法相結(jié)合,提高云環(huán)境下資源管理效率,使用珊瑚礁優(yōu)化算法完成準(zhǔn)備執(zhí)行任務(wù)的初始資源分配,利用強(qiáng)化學(xué)習(xí)來避免陷入局部最優(yōu),并利用長期的方法來優(yōu)化資源。該方法的資源利用率較高,但該方法的執(zhí)行任務(wù)效率較低。Chien等[7]提出了基于無能量小區(qū)大規(guī)模多進(jìn)多出(multiple input multiple output, MIMO)網(wǎng)絡(luò)的聯(lián)合功率分配和負(fù)載均衡優(yōu)化方法。采用無能量小區(qū)大規(guī)模MIMO網(wǎng)絡(luò),在考慮發(fā)射功率和硬件損耗的情況下,最小化接入點的總下行鏈路功耗,獲取全局最優(yōu)解。該方法可以大大降低功耗,減少發(fā)射功率,有效處理大規(guī)模網(wǎng)絡(luò)的功率分配和AP激活問題,但該方法的計算量較大。Kumar等[8]提出了云數(shù)據(jù)中心網(wǎng)絡(luò)的資源高效負(fù)載平衡框架。利用用戶共享的虛擬化資源,構(gòu)建一種新的負(fù)載平衡框架,降低計算資源。通過使數(shù)據(jù)中心的運(yùn)營成本最小化,采用改進(jìn)遺傳算法,最優(yōu)分配網(wǎng)絡(luò)資源負(fù)載。該方法能高效利用網(wǎng)絡(luò)資源,但無法確保服務(wù)質(zhì)量。賈嘉等[9]提出了基于人工蜂群的云計算負(fù)載均衡算法。構(gòu)建云計算系統(tǒng)中計算負(fù)載模型,通過負(fù)載均衡決策,對云計算系統(tǒng)整體負(fù)載進(jìn)行計算,分組云系統(tǒng)中全體虛擬機(jī),并計算任務(wù)調(diào)度,通過虛擬機(jī)任務(wù)向外遷移,實現(xiàn)云計算負(fù)載均衡優(yōu)化。該方法具有一定的有效性,但該方法的計算量較大。戴偉等[10]提出了基于Nginx的負(fù)載均衡技術(shù)研究與優(yōu)化方法。根據(jù)Nginx的反向代理優(yōu)勢,分析其自帶的負(fù)載均衡算法,并對其具有實時反饋能力的負(fù)載均衡算法進(jìn)行優(yōu)化。該方法具有更加合理的分配,其能夠有效加快連接處理速度,但該方法的資源均衡度較低。Wei等[11]提出了云數(shù)據(jù)中心虛擬機(jī)布局的多資源平衡優(yōu)化方法。為了平衡多個資源的使用,以減輕資源碎片,同時最大限度地提高虛擬機(jī)放置的服務(wù)率,從而防止物理資源的浪費(fèi)和不良性能。采用聯(lián)合裝箱啟發(fā)式算法和遺傳算法,解決雙目標(biāo)優(yōu)化問題。該算法以更低的時間復(fù)雜度獲得近似最優(yōu)解。但該方法存在資源利用率低的問題。Malarvizhi等[12]提出了具有有效任務(wù)調(diào)度和資源共享的負(fù)載平衡多參數(shù)優(yōu)化方法。采用粒子群優(yōu)化算法,優(yōu)化分配大量任務(wù)。
利用動態(tài)方式,分組部分提交的任務(wù)并考慮資產(chǎn)使用狀態(tài)。在得到每個組的答案后,將集群的所有問題答案合并到最后一個分配圖中。基于粒子群優(yōu)化算法和粒子群優(yōu)化算法,分配映射并調(diào)整負(fù)載。該方法具有較高的負(fù)載平衡度,但該方法存在執(zhí)行效率較低的問題。
針對上述問題,現(xiàn)基于微服務(wù)架構(gòu)的多資源負(fù)載均衡優(yōu)化方法,通過構(gòu)建微服務(wù)總體框架結(jié)構(gòu),動態(tài)調(diào)度網(wǎng)絡(luò)多資源服務(wù),降低負(fù)載情況,縮短資源負(fù)載均衡執(zhí)行時間。采用微服務(wù)架構(gòu),構(gòu)造可擴(kuò)展的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。依據(jù)優(yōu)化目標(biāo)建立優(yōu)化模型,基于多蟻群算法求解該模型,通過局部和全局更新網(wǎng)絡(luò)流量之間信息素,對網(wǎng)絡(luò)多資源負(fù)載進(jìn)行均衡優(yōu)化。
微服務(wù)架構(gòu)是在云中實現(xiàn)應(yīng)用和服務(wù)部署的技術(shù)。該技術(shù)主要利用輕量級設(shè)備和超文本傳輸協(xié)議(hyper text transfer protocol, HTTP)型應(yīng)用程序接口(application programming interface, API)實現(xiàn),但主要關(guān)鍵點在于此服務(wù)能夠在自身程序內(nèi)完成運(yùn)行,通過這一點就能夠把微服務(wù)架構(gòu)和服務(wù)公開進(jìn)行區(qū)分[13]。在服務(wù)公開內(nèi),很多服務(wù)都被內(nèi)部獨立的進(jìn)程限制,若其中任何一個服務(wù)都需要增加某一種功能,則必須縮小到進(jìn)程的范圍,而在微服務(wù)的架構(gòu)內(nèi),僅需要在特定某一種服務(wù)內(nèi)增加所需要的功能,并不會影響到整體進(jìn)程。
微服務(wù)架構(gòu)能夠單獨部署任務(wù),實現(xiàn)輕量級通信、有效隔離服務(wù)等。設(shè)計時一般涉及服務(wù)安全性、服務(wù)可靠性、服務(wù)路由、微服務(wù)發(fā)現(xiàn)與注冊以及微服務(wù)數(shù)據(jù)來源等方面問題。如果需要解決這方面問題,則設(shè)計一個微服務(wù)結(jié)構(gòu),使其能夠獨立地升級、運(yùn)行以及部署等,不只是如此,還需要微服務(wù)間在構(gòu)造上松耦合,從而在功能上按照架構(gòu)約束以及要求提供相應(yīng)的可靠性、安全性以及維護(hù)性。微服務(wù)總體框架結(jié)構(gòu)如圖1所示。
圖1中,微服務(wù)總體框架結(jié)構(gòu)可以分為5個層次,其作用具體如下。
(1)數(shù)據(jù)層。在數(shù)據(jù)源內(nèi)采集數(shù)據(jù),通過一定格式把數(shù)據(jù)傳輸至微服務(wù),同時接收微服務(wù)調(diào)用的數(shù)據(jù)結(jié)果,最后處理數(shù)據(jù),把處理后的數(shù)據(jù)結(jié)果傳送至數(shù)據(jù)源進(jìn)行再次處理。
(2)基礎(chǔ)層。此部分可實現(xiàn)安全、可靠的服務(wù),確保健康檢查、角色和容器管理、路由以及發(fā)現(xiàn)和注冊等功能可以正常運(yùn)行?;A(chǔ)層是為了保證微服務(wù)正常運(yùn)行,具體功能如表1所示。
圖1 微服務(wù)架構(gòu)Fig.1 Microservice architecture
表1 微服務(wù)架構(gòu)基礎(chǔ)層的核心功能模塊Table 1 Core functional modules of the basic layer of the microservice architecture
(3)服務(wù)層。該層主要可以依據(jù)中間件、運(yùn)維、定制、數(shù)據(jù)、通用和基礎(chǔ)等服務(wù)的不同種類,實現(xiàn)微服務(wù)的功能,因為微服務(wù)全部采用一種網(wǎng)絡(luò)應(yīng)用程序的設(shè)計風(fēng)格和開發(fā)(representational state transfer, RESTful)服務(wù)方式,來提供外部的運(yùn)行。
(4)業(yè)務(wù)層。該層主要是用來完成系統(tǒng)業(yè)務(wù),通常來說,是利用服務(wù)器來提供許多服務(wù)能夠一起協(xié)作完成某項任務(wù),而信息服務(wù)平臺內(nèi),它的任務(wù)通常都包括信息查詢、用戶管理、信息采集、信息維護(hù)以及消息推送等。
(5)表示層。該層的主要目的是將業(yè)務(wù)層的結(jié)果展示給用戶。
微服務(wù)架構(gòu)能夠提供負(fù)載均衡算法,將網(wǎng)絡(luò)用戶多個任務(wù)請求,分配給不同的服務(wù)或服務(wù)器來處理,以此來提高系統(tǒng)的穩(wěn)定性。通過建立多個小粒度且聚焦功能的服務(wù)形態(tài),動態(tài)調(diào)度網(wǎng)絡(luò)多資源服務(wù)。在一定程度上,考慮了網(wǎng)絡(luò)的可擴(kuò)展性,解決了應(yīng)用系統(tǒng)可靠性等方面的問題。
提出的網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化方法依據(jù)微服務(wù)總體框架結(jié)構(gòu),構(gòu)建網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化模型,采用多蟻群算法構(gòu)建負(fù)載均衡優(yōu)化模型,根據(jù)網(wǎng)絡(luò)流量中信息素的相互作用,局部和全局更新信息素,實現(xiàn)網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化。
在進(jìn)行網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化的過程中,首先根據(jù)微服務(wù)總體框架結(jié)構(gòu),構(gòu)造網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。然后依據(jù)網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化目標(biāo),結(jié)合微服務(wù)架構(gòu)下構(gòu)造的可擴(kuò)展性網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),構(gòu)建網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化模型,具體過程如下。
采用微服務(wù)架構(gòu),構(gòu)造可擴(kuò)展性的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。通常情況下,利用有向圖表示網(wǎng)絡(luò)拓?fù)?,其結(jié)構(gòu)如圖2所示。
V為網(wǎng)絡(luò)節(jié)點的集合;C為網(wǎng)絡(luò)鏈路容量和其他約束的條件[14]; E為網(wǎng)絡(luò)鏈路的集合圖2 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖Fig.2 Network topology structure diagram
數(shù)值,(i,j)∈E,具體公式為
(1)
以最大鏈路利用率最小化和網(wǎng)絡(luò)業(yè)務(wù)流轉(zhuǎn)移至對應(yīng)較輕的負(fù)載鏈路中為優(yōu)化目標(biāo),從而提高資源負(fù)載均衡度,繼而降低因為流量分布的不均衡所導(dǎo)致的算法效率低的問題。依據(jù)該網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化目標(biāo),結(jié)合微服務(wù)架構(gòu)下構(gòu)造的可擴(kuò)展性網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),建立具體的網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化模型公式為
(2)
而約束條件公式為
(3)
式(3)中:Cij為網(wǎng)絡(luò)鏈路(i,j)容量;hk為資源負(fù)載均衡度;α為網(wǎng)絡(luò)最大鏈路的利用率[15]。
通過式(2)、式(3)能夠看出,網(wǎng)絡(luò)資源的均衡負(fù)載問題主要是指在多約束的條件下,在多條路徑內(nèi)選取一條最佳路徑。因此,利用多蟻群算法進(jìn)一步尋求最優(yōu),以最快速度找出網(wǎng)絡(luò)資源負(fù)載最佳解,實現(xiàn)網(wǎng)絡(luò)資源的利用率提升。
在進(jìn)行網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化的過程中,以上述構(gòu)建的網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化模型為依據(jù),采用多蟻群算法對網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化模型進(jìn)行求解,通過分析網(wǎng)絡(luò)流量之間信息素的相互作用,局部和全局更新網(wǎng)絡(luò)流量之間信息素,實現(xiàn)網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化。具體過程如下。
通過多蟻群算法對外部條件或者環(huán)境的變化進(jìn)行自動調(diào)整,優(yōu)化網(wǎng)絡(luò)資源。
(4)
(5)
(6)
(7)
(8)
(9)
(10)
通過上述步驟,采用多蟻群算法對網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化模型進(jìn)行求解,局部和全局更新信息素,從而能夠?qū)W(wǎng)絡(luò)資源進(jìn)行負(fù)載均衡優(yōu)化,提升網(wǎng)絡(luò)資源的處理性能,降低不必要的損耗。
為了驗證基于微服務(wù)架構(gòu)的多資源負(fù)載均衡優(yōu)化方法的有效性,通過內(nèi)網(wǎng)環(huán)境對其進(jìn)行實驗測試以及評估。選取GridSim網(wǎng)格模擬工具對所提方法進(jìn)行模擬仿真,實驗所采用的具體配置為10臺IBM-x3650 M4-2U計算機(jī)服務(wù)器。設(shè)置網(wǎng)絡(luò)物理機(jī)參數(shù)如表2所示。
表2 網(wǎng)絡(luò)物理機(jī)參數(shù)Table 2 Network physical machine parameters
3.2.1 網(wǎng)絡(luò)資源負(fù)載均衡效果
為了驗證所提方法的優(yōu)化性能,將資源負(fù)載均衡度、資源利用率和執(zhí)行時間作為實驗指標(biāo)。資源負(fù)載均衡度能夠有效對負(fù)載均衡效果進(jìn)行評估,其均衡度越高,負(fù)載均衡效果越好,資源負(fù)載均衡度計算公式為
(11)
根據(jù)圖3可知,文獻(xiàn)[4]方法和文獻(xiàn)[5]方法的資源負(fù)載均衡度波動較大,而所提方法的資源負(fù)載均衡度較為平滑。且當(dāng)任務(wù)數(shù)達(dá)到1×103個時,文獻(xiàn)[4]方法的平均資源負(fù)載均衡度為63.4%,文獻(xiàn)[5]方法的平均資源負(fù)載均衡度為69.4%,而所提方法的平均資源負(fù)載均衡度為89.4%。由此可知,所提方法的資源負(fù)載均衡度較高,保障了資源節(jié)點的計算能力,實現(xiàn)了資源負(fù)載動態(tài)分配。因為所提方法以網(wǎng)絡(luò)業(yè)務(wù)轉(zhuǎn)移至對應(yīng)負(fù)載鏈路為目的,構(gòu)建網(wǎng)絡(luò)資源負(fù)載均衡優(yōu)化模型,能夠?qū)W(wǎng)絡(luò)多資源負(fù)載進(jìn)行均衡優(yōu)化,從而提高資源負(fù)載均衡度,確保資源負(fù)載均衡效果。
圖3 不同方法的資源負(fù)載均衡度Fig.3 Resource load balancing degree of different methods
3.2.2 網(wǎng)絡(luò)資源利用率
為了進(jìn)一步驗證所提方法的有效性,選取資源利用率作為反映網(wǎng)絡(luò)負(fù)載平衡情況的指標(biāo),資源利用率越高,網(wǎng)絡(luò)資源負(fù)載平衡情況越好,資源利用率計算公式為
(12)
式(12)中:Lx為網(wǎng)絡(luò)資源實際消耗量;Lp為網(wǎng)絡(luò)資源完成尚需消耗量。設(shè)置1×104MB網(wǎng)絡(luò)資源量,分別采用所提方法、文獻(xiàn)[4]方法和文獻(xiàn)[5]方法,通過式(12)計算不同方法的網(wǎng)絡(luò)資源利用率進(jìn)行對比,得到不同方法的網(wǎng)絡(luò)資源利用率對比結(jié)果如圖4所示。
通過圖4可以看出,當(dāng)網(wǎng)絡(luò)資源量達(dá)到1×104MB時,文獻(xiàn)[4]方法的平均網(wǎng)絡(luò)資源利用率為72.8%,文獻(xiàn)[5]方法的平均網(wǎng)絡(luò)資源利用率為69.4%,而所提方法的平均網(wǎng)絡(luò)資源利用率高達(dá)89.2%。由此可知,所提方法的網(wǎng)絡(luò)資源利用率較高。因為所提方法采用多蟻群算法,尋求網(wǎng)絡(luò)資源負(fù)載最佳解,采用微服務(wù)架構(gòu),構(gòu)造網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),從而提升網(wǎng)絡(luò)資源利用率。
圖4 不同方法的網(wǎng)絡(luò)資源利用率Fig.4 Network resource utilization of different methods
3.2.3 資源負(fù)載均衡執(zhí)行效率
在此基礎(chǔ)上,為了驗證所提方法的資源負(fù)載均衡執(zhí)行效率,將資源負(fù)載均衡執(zhí)行時間作為實驗評價指標(biāo)。執(zhí)行時間可以對資源負(fù)載均衡執(zhí)行效率進(jìn)行有效評估,執(zhí)行時間越短,執(zhí)行效率越高。對比所提方法、文獻(xiàn)[4]方法和文獻(xiàn)[5]方法的資源負(fù)載均衡執(zhí)行時間結(jié)果如圖5所示。
通過圖5可以看出,隨著網(wǎng)絡(luò)資源量的增加,不同方法的資源負(fù)載均衡執(zhí)行時間隨之增大。當(dāng)網(wǎng)絡(luò)資源量為1×104MB時,文獻(xiàn)[4]方法和文獻(xiàn)[5]方法的資源負(fù)載均衡執(zhí)行時間分別為28 s和17 s,而所提方法的資源負(fù)載均衡執(zhí)行時間僅為10 s。由此可知,所提方法執(zhí)行時間短,執(zhí)行效率高,在工作高峰期間也能夠?qū)?shù)據(jù)進(jìn)行合理處理,降低節(jié)點損耗。
圖5 不同方法的資源負(fù)載均衡執(zhí)行時間Fig.5 Resource load balancing execution time of different methods
提出的基于微服務(wù)架構(gòu)的多資源負(fù)載均衡優(yōu)化方法在微服務(wù)架構(gòu)下,建立負(fù)載均衡優(yōu)化模型,利用多蟻群算法進(jìn)行求解,實現(xiàn)網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化。
(1)所提方法通過構(gòu)建微服務(wù)總體框架結(jié)構(gòu),動態(tài)調(diào)度網(wǎng)絡(luò)多資源服務(wù),降低負(fù)載情況,其資源負(fù)載均衡執(zhí)行時間僅為10 s,可有效提高負(fù)載均衡執(zhí)行效率。
(2)所提方法采用微服務(wù)架構(gòu),考慮網(wǎng)絡(luò)可擴(kuò)展性構(gòu)造網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),提高資源利用率,其網(wǎng)絡(luò)資源利用率高達(dá)89.2%。
(3)所提方法建立網(wǎng)絡(luò)多資源負(fù)載均衡優(yōu)化模型,利用多蟻群算法進(jìn)行求解,局部和全局更新網(wǎng)絡(luò)流量之間信息素,能夠?qū)W(wǎng)絡(luò)多資源負(fù)載進(jìn)行均衡優(yōu)化,其資源負(fù)載均衡度為89.4%,能夠有效提高資源負(fù)載均衡度,確保資源負(fù)載均衡效果。