羅歡, 姜唯, 劉明偉, 徐律冠
(南方電網數字電網研究院有限公司, 廣州 510700)
目前無線通信技術不斷發(fā)展,越來越多的人使用無線網絡實現通信。然而,當網絡資源出現大量任務請求時,會對網絡環(huán)境造成一定的影響,出現網絡資源負載不均衡的現象,從而導致網絡任務超載或空閑的情況發(fā)生[1-2]。與此同時,因為在空間和時間上網絡用戶任務呈現出多變性,所以在同構和異構網絡之間任務負載分布不均,從而影響網絡的性能表現。為此,網絡資源負載均衡優(yōu)化逐漸成為一種趨勢,不僅可以對復雜的無線接入網絡實施管理,而且能夠有效實現高質量、低成本的運行,且在每個網絡既定資源中,更加均勻、合理地對網絡任務進行分配,以此提升網絡資源整體性能[3]。所以,優(yōu)化資源負載具有重要意義。
現階段針對網絡資源負載均衡優(yōu)化方法,相關領域中外學者已經進行了大量研究,并取得了一定的研究成果。肖明等[4]提出了基于霧計算的無線網絡負載均衡優(yōu)化方法。通過云服務層、霧計算層和終端層,建立無線網絡架構,采用霧計算,構建無線網絡負載均衡優(yōu)化模型,實現無線接入點(access point, AP)和硬件資源負載均衡。該方法能夠有效降低無線網絡資源不均衡度,但存在無線網絡資源負載均衡執(zhí)行時間較長的問題。徐俊等[5]提出了基于改進混合蛙跳算法的云工作流負載均衡調度優(yōu)化方法。根據任務優(yōu)先級劃分層級,建立云工作流分層調度模型。利用時間貪心算法,結合混合蛙跳算法,對混合蛙跳算法進行改進,求解云工作流調度模型,實現云工作流負載均衡調度優(yōu)化。該方法的資源負載均衡執(zhí)行時間較短,但網絡資源均衡度較低。Asghari等[6]提出了基于珊瑚礁優(yōu)化和強化學習的云環(huán)境資源負載平衡的聯合應用方法。將珊瑚礁優(yōu)化算法與強化學習算法相結合,提高云環(huán)境下資源管理效率,使用珊瑚礁優(yōu)化算法完成準備執(zhí)行任務的初始資源分配,利用強化學習來避免陷入局部最優(yōu),并利用長期的方法來優(yōu)化資源。該方法的資源利用率較高,但該方法的執(zhí)行任務效率較低。Chien等[7]提出了基于無能量小區(qū)大規(guī)模多進多出(multiple input multiple output, MIMO)網絡的聯合功率分配和負載均衡優(yōu)化方法。采用無能量小區(qū)大規(guī)模MIMO網絡,在考慮發(fā)射功率和硬件損耗的情況下,最小化接入點的總下行鏈路功耗,獲取全局最優(yōu)解。該方法可以大大降低功耗,減少發(fā)射功率,有效處理大規(guī)模網絡的功率分配和AP激活問題,但該方法的計算量較大。Kumar等[8]提出了云數據中心網絡的資源高效負載平衡框架。利用用戶共享的虛擬化資源,構建一種新的負載平衡框架,降低計算資源。通過使數據中心的運營成本最小化,采用改進遺傳算法,最優(yōu)分配網絡資源負載。該方法能高效利用網絡資源,但無法確保服務質量。賈嘉等[9]提出了基于人工蜂群的云計算負載均衡算法。構建云計算系統(tǒng)中計算負載模型,通過負載均衡決策,對云計算系統(tǒng)整體負載進行計算,分組云系統(tǒng)中全體虛擬機,并計算任務調度,通過虛擬機任務向外遷移,實現云計算負載均衡優(yōu)化。該方法具有一定的有效性,但該方法的計算量較大。戴偉等[10]提出了基于Nginx的負載均衡技術研究與優(yōu)化方法。根據Nginx的反向代理優(yōu)勢,分析其自帶的負載均衡算法,并對其具有實時反饋能力的負載均衡算法進行優(yōu)化。該方法具有更加合理的分配,其能夠有效加快連接處理速度,但該方法的資源均衡度較低。Wei等[11]提出了云數據中心虛擬機布局的多資源平衡優(yōu)化方法。為了平衡多個資源的使用,以減輕資源碎片,同時最大限度地提高虛擬機放置的服務率,從而防止物理資源的浪費和不良性能。采用聯合裝箱啟發(fā)式算法和遺傳算法,解決雙目標優(yōu)化問題。該算法以更低的時間復雜度獲得近似最優(yōu)解。但該方法存在資源利用率低的問題。Malarvizhi等[12]提出了具有有效任務調度和資源共享的負載平衡多參數優(yōu)化方法。采用粒子群優(yōu)化算法,優(yōu)化分配大量任務。
利用動態(tài)方式,分組部分提交的任務并考慮資產使用狀態(tài)。在得到每個組的答案后,將集群的所有問題答案合并到最后一個分配圖中。基于粒子群優(yōu)化算法和粒子群優(yōu)化算法,分配映射并調整負載。該方法具有較高的負載平衡度,但該方法存在執(zhí)行效率較低的問題。
針對上述問題,現基于微服務架構的多資源負載均衡優(yōu)化方法,通過構建微服務總體框架結構,動態(tài)調度網絡多資源服務,降低負載情況,縮短資源負載均衡執(zhí)行時間。采用微服務架構,構造可擴展的網絡拓撲結構。依據優(yōu)化目標建立優(yōu)化模型,基于多蟻群算法求解該模型,通過局部和全局更新網絡流量之間信息素,對網絡多資源負載進行均衡優(yōu)化。
微服務架構是在云中實現應用和服務部署的技術。該技術主要利用輕量級設備和超文本傳輸協議(hyper text transfer protocol, HTTP)型應用程序接口(application programming interface, API)實現,但主要關鍵點在于此服務能夠在自身程序內完成運行,通過這一點就能夠把微服務架構和服務公開進行區(qū)分[13]。在服務公開內,很多服務都被內部獨立的進程限制,若其中任何一個服務都需要增加某一種功能,則必須縮小到進程的范圍,而在微服務的架構內,僅需要在特定某一種服務內增加所需要的功能,并不會影響到整體進程。
微服務架構能夠單獨部署任務,實現輕量級通信、有效隔離服務等。設計時一般涉及服務安全性、服務可靠性、服務路由、微服務發(fā)現與注冊以及微服務數據來源等方面問題。如果需要解決這方面問題,則設計一個微服務結構,使其能夠獨立地升級、運行以及部署等,不只是如此,還需要微服務間在構造上松耦合,從而在功能上按照架構約束以及要求提供相應的可靠性、安全性以及維護性。微服務總體框架結構如圖1所示。
圖1中,微服務總體框架結構可以分為5個層次,其作用具體如下。
(1)數據層。在數據源內采集數據,通過一定格式把數據傳輸至微服務,同時接收微服務調用的數據結果,最后處理數據,把處理后的數據結果傳送至數據源進行再次處理。
(2)基礎層。此部分可實現安全、可靠的服務,確保健康檢查、角色和容器管理、路由以及發(fā)現和注冊等功能可以正常運行。基礎層是為了保證微服務正常運行,具體功能如表1所示。

圖1 微服務架構Fig.1 Microservice architecture

表1 微服務架構基礎層的核心功能模塊Table 1 Core functional modules of the basic layer of the microservice architecture
(3)服務層。該層主要可以依據中間件、運維、定制、數據、通用和基礎等服務的不同種類,實現微服務的功能,因為微服務全部采用一種網絡應用程序的設計風格和開發(fā)(representational state transfer, RESTful)服務方式,來提供外部的運行。
(4)業(yè)務層。該層主要是用來完成系統(tǒng)業(yè)務,通常來說,是利用服務器來提供許多服務能夠一起協作完成某項任務,而信息服務平臺內,它的任務通常都包括信息查詢、用戶管理、信息采集、信息維護以及消息推送等。
(5)表示層。該層的主要目的是將業(yè)務層的結果展示給用戶。
微服務架構能夠提供負載均衡算法,將網絡用戶多個任務請求,分配給不同的服務或服務器來處理,以此來提高系統(tǒng)的穩(wěn)定性。通過建立多個小粒度且聚焦功能的服務形態(tài),動態(tài)調度網絡多資源服務。在一定程度上,考慮了網絡的可擴展性,解決了應用系統(tǒng)可靠性等方面的問題。
提出的網絡多資源負載均衡優(yōu)化方法依據微服務總體框架結構,構建網絡多資源負載均衡優(yōu)化模型,采用多蟻群算法構建負載均衡優(yōu)化模型,根據網絡流量中信息素的相互作用,局部和全局更新信息素,實現網絡多資源負載均衡優(yōu)化。
在進行網絡多資源負載均衡優(yōu)化的過程中,首先根據微服務總體框架結構,構造網絡拓撲結構。然后依據網絡多資源負載均衡優(yōu)化目標,結合微服務架構下構造的可擴展性網絡拓撲結構,構建網絡多資源負載均衡優(yōu)化模型,具體過程如下。
采用微服務架構,構造可擴展性的網絡拓撲結構。通常情況下,利用有向圖表示網絡拓撲,其結構如圖2所示。


V為網絡節(jié)點的集合;C為網絡鏈路容量和其他約束的條件[14]; E為網絡鏈路的集合圖2 網絡拓撲結構圖Fig.2 Network topology structure diagram
數值,(i,j)∈E,具體公式為

(1)
以最大鏈路利用率最小化和網絡業(yè)務流轉移至對應較輕的負載鏈路中為優(yōu)化目標,從而提高資源負載均衡度,繼而降低因為流量分布的不均衡所導致的算法效率低的問題。依據該網絡多資源負載均衡優(yōu)化目標,結合微服務架構下構造的可擴展性網絡拓撲結構,建立具體的網絡多資源負載均衡優(yōu)化模型公式為

(2)
而約束條件公式為

(3)
式(3)中:Cij為網絡鏈路(i,j)容量;hk為資源負載均衡度;α為網絡最大鏈路的利用率[15]。
通過式(2)、式(3)能夠看出,網絡資源的均衡負載問題主要是指在多約束的條件下,在多條路徑內選取一條最佳路徑。因此,利用多蟻群算法進一步尋求最優(yōu),以最快速度找出網絡資源負載最佳解,實現網絡資源的利用率提升。
在進行網絡多資源負載均衡優(yōu)化的過程中,以上述構建的網絡多資源負載均衡優(yōu)化模型為依據,采用多蟻群算法對網絡多資源負載均衡優(yōu)化模型進行求解,通過分析網絡流量之間信息素的相互作用,局部和全局更新網絡流量之間信息素,實現網絡多資源負載均衡優(yōu)化。具體過程如下。
通過多蟻群算法對外部條件或者環(huán)境的變化進行自動調整,優(yōu)化網絡資源。


(4)

(5)
(6)

(7)
(8)
(9)
(10)

通過上述步驟,采用多蟻群算法對網絡多資源負載均衡優(yōu)化模型進行求解,局部和全局更新信息素,從而能夠對網絡資源進行負載均衡優(yōu)化,提升網絡資源的處理性能,降低不必要的損耗。
為了驗證基于微服務架構的多資源負載均衡優(yōu)化方法的有效性,通過內網環(huán)境對其進行實驗測試以及評估。選取GridSim網格模擬工具對所提方法進行模擬仿真,實驗所采用的具體配置為10臺IBM-x3650 M4-2U計算機服務器。設置網絡物理機參數如表2所示。

表2 網絡物理機參數Table 2 Network physical machine parameters
3.2.1 網絡資源負載均衡效果
為了驗證所提方法的優(yōu)化性能,將資源負載均衡度、資源利用率和執(zhí)行時間作為實驗指標。資源負載均衡度能夠有效對負載均衡效果進行評估,其均衡度越高,負載均衡效果越好,資源負載均衡度計算公式為
(11)
根據圖3可知,文獻[4]方法和文獻[5]方法的資源負載均衡度波動較大,而所提方法的資源負載均衡度較為平滑。且當任務數達到1×103個時,文獻[4]方法的平均資源負載均衡度為63.4%,文獻[5]方法的平均資源負載均衡度為69.4%,而所提方法的平均資源負載均衡度為89.4%。由此可知,所提方法的資源負載均衡度較高,保障了資源節(jié)點的計算能力,實現了資源負載動態(tài)分配。因為所提方法以網絡業(yè)務轉移至對應負載鏈路為目的,構建網絡資源負載均衡優(yōu)化模型,能夠對網絡多資源負載進行均衡優(yōu)化,從而提高資源負載均衡度,確保資源負載均衡效果。

圖3 不同方法的資源負載均衡度Fig.3 Resource load balancing degree of different methods
3.2.2 網絡資源利用率
為了進一步驗證所提方法的有效性,選取資源利用率作為反映網絡負載平衡情況的指標,資源利用率越高,網絡資源負載平衡情況越好,資源利用率計算公式為

(12)
式(12)中:Lx為網絡資源實際消耗量;Lp為網絡資源完成尚需消耗量。設置1×104MB網絡資源量,分別采用所提方法、文獻[4]方法和文獻[5]方法,通過式(12)計算不同方法的網絡資源利用率進行對比,得到不同方法的網絡資源利用率對比結果如圖4所示。
通過圖4可以看出,當網絡資源量達到1×104MB時,文獻[4]方法的平均網絡資源利用率為72.8%,文獻[5]方法的平均網絡資源利用率為69.4%,而所提方法的平均網絡資源利用率高達89.2%。由此可知,所提方法的網絡資源利用率較高。因為所提方法采用多蟻群算法,尋求網絡資源負載最佳解,采用微服務架構,構造網絡拓撲結構,從而提升網絡資源利用率。

圖4 不同方法的網絡資源利用率Fig.4 Network resource utilization of different methods
3.2.3 資源負載均衡執(zhí)行效率
在此基礎上,為了驗證所提方法的資源負載均衡執(zhí)行效率,將資源負載均衡執(zhí)行時間作為實驗評價指標。執(zhí)行時間可以對資源負載均衡執(zhí)行效率進行有效評估,執(zhí)行時間越短,執(zhí)行效率越高。對比所提方法、文獻[4]方法和文獻[5]方法的資源負載均衡執(zhí)行時間結果如圖5所示。
通過圖5可以看出,隨著網絡資源量的增加,不同方法的資源負載均衡執(zhí)行時間隨之增大。當網絡資源量為1×104MB時,文獻[4]方法和文獻[5]方法的資源負載均衡執(zhí)行時間分別為28 s和17 s,而所提方法的資源負載均衡執(zhí)行時間僅為10 s。由此可知,所提方法執(zhí)行時間短,執(zhí)行效率高,在工作高峰期間也能夠對數據進行合理處理,降低節(jié)點損耗。

圖5 不同方法的資源負載均衡執(zhí)行時間Fig.5 Resource load balancing execution time of different methods
提出的基于微服務架構的多資源負載均衡優(yōu)化方法在微服務架構下,建立負載均衡優(yōu)化模型,利用多蟻群算法進行求解,實現網絡多資源負載均衡優(yōu)化。
(1)所提方法通過構建微服務總體框架結構,動態(tài)調度網絡多資源服務,降低負載情況,其資源負載均衡執(zhí)行時間僅為10 s,可有效提高負載均衡執(zhí)行效率。
(2)所提方法采用微服務架構,考慮網絡可擴展性構造網絡拓撲結構,提高資源利用率,其網絡資源利用率高達89.2%。
(3)所提方法建立網絡多資源負載均衡優(yōu)化模型,利用多蟻群算法進行求解,局部和全局更新網絡流量之間信息素,能夠對網絡多資源負載進行均衡優(yōu)化,其資源負載均衡度為89.4%,能夠有效提高資源負載均衡度,確保資源負載均衡效果。