基于容器集群負(fù)載均衡算法的細(xì)粒度資源響應(yīng)系統(tǒng)的制作方法
【專利摘要】一種基于容器集群負(fù)載均衡算法的細(xì)粒度資源響應(yīng)系統(tǒng),包括:請(qǐng)求處理模塊、數(shù)據(jù)支持模塊、分析決策模塊、服務(wù)實(shí)例選擇模塊和請(qǐng)求‐服務(wù)實(shí)例匹配器,其中:請(qǐng)求處理模塊調(diào)用數(shù)據(jù)支持模塊和分析決策模塊對(duì)請(qǐng)求進(jìn)行分析和分類,并將請(qǐng)求的分類結(jié)果發(fā)送至請(qǐng)求‐服務(wù)實(shí)例匹配器;請(qǐng)求‐服務(wù)實(shí)例匹配器向服務(wù)實(shí)例選擇模塊發(fā)起選擇要求,服務(wù)實(shí)例選擇模塊調(diào)用數(shù)據(jù)支持模塊和分析決策模塊進(jìn)行服務(wù)實(shí)例的解析和選擇,并將服務(wù)實(shí)例的選擇結(jié)果發(fā)送至請(qǐng)求‐服務(wù)實(shí)例匹配器;請(qǐng)求‐服務(wù)實(shí)例匹配器根據(jù)請(qǐng)求的分類結(jié)果和服務(wù)實(shí)例的選擇結(jié)果,調(diào)用分析決策模塊依次進(jìn)行分組匹配和個(gè)體匹配,并根據(jù)匹配結(jié)果將請(qǐng)求分發(fā)至對(duì)應(yīng)的服務(wù)實(shí)例,實(shí)現(xiàn)資源的響應(yīng);本發(fā)明有較好的資源使用率。
【專利說(shuō)明】
基于容器集群負(fù)載均衡算法的細(xì)粒度資源響應(yīng)系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及的是一種容器集群資源管理領(lǐng)域的技術(shù),具體是一種基于容器集群負(fù) 載均衡算法的細(xì)粒度資源響應(yīng)系統(tǒng)。
【背景技術(shù)】
[0002] 近年來(lái),隨著容器技術(shù)的發(fā)展,越來(lái)越多的企業(yè)選擇使用輕量級(jí)的容器虛擬化技 術(shù)代替?zhèn)鹘y(tǒng)的服務(wù)器虛擬化技術(shù)來(lái)提供云服務(wù)。同時(shí),隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,當(dāng)前云服務(wù) 中,REST化1的HTTP請(qǐng)求越來(lái)越成為主流。因此,如何在有限的計(jì)算資源條件下提高每秒處 理REST化1請(qǐng)求的數(shù)量是迫切需要解決的問(wèn)題。
[0003] REST化1,是W資源為中屯、的HTTP交互方式。資源是REST化1中最關(guān)鍵的抽象概念, 它們是能夠被遠(yuǎn)程訪問(wèn)的應(yīng)用程序?qū)ο蟆R粋€(gè)資源就是一個(gè)標(biāo)識(shí)單位,任何可W被訪問(wèn)或 被遠(yuǎn)程操縱的東西都可能是一個(gè)資源。資源可W是靜態(tài)的,也就是該資源的狀態(tài)永遠(yuǎn)不會(huì) 改變。相反,某些資源的狀態(tài)可能隨著時(shí)間推移呈現(xiàn)很大的可變性。目前運(yùn)樣的資源越來(lái)越 成為了 HTTP交互時(shí)的主流選擇,因?yàn)镽EST化1有著更好的擴(kuò)展性與獨(dú)立性,也成為移動(dòng)互聯(lián) 網(wǎng)時(shí)代前后端交互的主要技術(shù)手段。
[0004] 容器是一種輕量級(jí)的虛擬機(jī),每個(gè)容器內(nèi)都包含了一個(gè)獨(dú)立的用戶環(huán)境空間。一 個(gè)服務(wù)器集群上通??蒞運(yùn)行成千上萬(wàn)個(gè)容器,
[0005] 目前,一些已有的基于容器的資源管理平臺(tái)為容器化應(yīng)用提供了資源調(diào)度、部署 運(yùn)行、服務(wù)發(fā)現(xiàn)、擴(kuò)容縮容等一整套功能,但是在負(fù)載均衡方面僅僅采用了最基本的方法。 通過(guò)對(duì)現(xiàn)有的NGINX和阿帕奇負(fù)載均衡算法的研究發(fā)現(xiàn),目前普遍采用的方法有輪詢調(diào)度、 最少連接調(diào)度、加權(quán)負(fù)載均衡等。但運(yùn)些都沒(méi)有對(duì)服務(wù)本身的特性進(jìn)行分析,無(wú)法進(jìn)行細(xì)粒 度訪問(wèn)請(qǐng)求負(fù)載均衡。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的上述不足,提出一種基于容器集群負(fù)載均衡算法的細(xì) 粒度資源響應(yīng)系統(tǒng),在有限的服務(wù)器資源條件下,綜合考慮服務(wù)訪問(wèn)頻率、服務(wù)訪問(wèn)相關(guān)數(shù) 據(jù)量大小等因素并根據(jù)匹配算法制定了一套分發(fā)規(guī)則,將來(lái)自客戶端的訪問(wèn)請(qǐng)求按照該規(guī) 則通過(guò)分組匹配和個(gè)體匹配兩輪匹配分發(fā)到合適的服務(wù)實(shí)例上去,充分利用資源,避免資 源擱淺,W提高每秒RESTTul請(qǐng)求的處理數(shù)量。
[0007] 本發(fā)明是通過(guò)W下技術(shù)方案實(shí)現(xiàn)的:
[0008] 本發(fā)明包括:請(qǐng)求處理模塊、數(shù)據(jù)支持模塊、分析決策模塊、服務(wù)實(shí)例選擇模塊和 請(qǐng)求-服務(wù)實(shí)例匹配器,其中:請(qǐng)求處理模塊調(diào)用數(shù)據(jù)支持模塊和分析決策模塊對(duì)請(qǐng)求進(jìn)行 分析和分類,并將請(qǐng)求的分類結(jié)果發(fā)送至請(qǐng)求-服務(wù)實(shí)例匹配器;請(qǐng)求-服務(wù)實(shí)例匹配器向 服務(wù)實(shí)例選擇模塊發(fā)起選擇要求,服務(wù)實(shí)例選擇模塊調(diào)用數(shù)據(jù)支持模塊和分析決策模塊進(jìn) 行服務(wù)實(shí)例的解析和選擇,并將服務(wù)實(shí)例的選擇結(jié)果發(fā)送至請(qǐng)求-服務(wù)實(shí)例匹配器;請(qǐng)求- 服務(wù)實(shí)例匹配器根據(jù)請(qǐng)求的分類結(jié)果和服務(wù)實(shí)例的選擇結(jié)果,調(diào)用分析決策模塊依次進(jìn)行 分組匹配和個(gè)體匹配,并根據(jù)匹配結(jié)果將請(qǐng)求分發(fā)至對(duì)應(yīng)的服務(wù)實(shí)例,實(shí)現(xiàn)資源的響應(yīng)。
[0009] 所述的分析決策模塊包括:請(qǐng)求分析算法、匹配算法、服務(wù)實(shí)例分析算法和選擇算 法。
[0010] 所述的請(qǐng)求處理模塊包括:請(qǐng)求分類器和請(qǐng)求分析器,其中:請(qǐng)求分析器對(duì)請(qǐng)求進(jìn) 行url識(shí)別,綜合數(shù)據(jù)支持模塊得出請(qǐng)求的CPU和內(nèi)存占用情況,并將結(jié)果發(fā)送至請(qǐng)求分類 器,請(qǐng)求分類器執(zhí)行請(qǐng)求分析算法得到請(qǐng)求按所訪問(wèn)的資源得到的分類。
[0011] 所述的數(shù)據(jù)支持模塊包括:請(qǐng)求歷史日志和服務(wù)實(shí)例狀態(tài),其中:請(qǐng)求歷史日志存 儲(chǔ)所有歷史請(qǐng)求數(shù)據(jù),服務(wù)實(shí)例狀態(tài)存儲(chǔ)容器集群管理系統(tǒng)收集得到的服務(wù)實(shí)例的負(fù)載情 況。
[0012] 所述的服務(wù)實(shí)例選擇模塊包括:服務(wù)實(shí)例整理器和服務(wù)實(shí)例解析器,其中:服務(wù)實(shí) 例解析器抽取服務(wù)實(shí)例負(fù)載基礎(chǔ)樣本并發(fā)送至服務(wù)實(shí)例整理器進(jìn)行服務(wù)實(shí)例選擇。
[0013] 所述的服務(wù)實(shí)例解析器調(diào)用選擇算法,從集群中正在工作的服務(wù)實(shí)例中平均取出 若干個(gè)服務(wù)實(shí)例作為樣本供服務(wù)實(shí)例選擇模塊使用。
[0014] 所述的分組匹配是指:根據(jù)請(qǐng)求所訪問(wèn)的資源分類,調(diào)用匹配算法和服務(wù)實(shí)例分 析算法尋找對(duì)應(yīng)的服務(wù)實(shí)例組,并查看該服務(wù)實(shí)例組對(duì)應(yīng)的資源是否可用;如果可用,則將 請(qǐng)求分發(fā)至該服務(wù)實(shí)例組;否則,將請(qǐng)求分發(fā)至請(qǐng)求-服務(wù)實(shí)例匹配器內(nèi)維護(hù)的資源匹配表 中對(duì)應(yīng)的資源標(biāo)記為可用的服務(wù)實(shí)例組;如果未找到對(duì)應(yīng)的服務(wù)實(shí)例組,則隨機(jī)選擇一個(gè) 尚未被分組的服務(wù)實(shí)例根據(jù)服務(wù)實(shí)例分組規(guī)則進(jìn)行自動(dòng)分組,并將請(qǐng)求分發(fā)至該服務(wù)實(shí)例 組。
[0015] 所述的服務(wù)實(shí)例分組規(guī)則是指:根據(jù)服務(wù)實(shí)例處理的第一個(gè)請(qǐng)求所屬的訪問(wèn)資源 對(duì)服務(wù)實(shí)例進(jìn)行分組,同一組的服務(wù)實(shí)例所處理的請(qǐng)求均訪問(wèn)同一資源。
[0016] 所述的個(gè)體匹配是指:所述的個(gè)體匹配是指:調(diào)用匹配算法和服務(wù)實(shí)例分析算法, 在請(qǐng)求分入的服務(wù)實(shí)例組中隨機(jī)抽取若干個(gè)服務(wù)實(shí)例組成候選服務(wù)實(shí)例組,在候選服務(wù)實(shí) 例組內(nèi)依據(jù)請(qǐng)求的計(jì)算資源類型,通過(guò)組內(nèi)服務(wù)實(shí)例資源分析規(guī)則找出對(duì)應(yīng)資源的備選服 務(wù)實(shí)例,作為處理該請(qǐng)求的最終服務(wù)實(shí)例。
[0017] 所述的組內(nèi)服務(wù)實(shí)例資源分析規(guī)則是指:將同一服務(wù)實(shí)例組內(nèi)計(jì)算資源使用率最 小的服務(wù)實(shí)例作為備選服務(wù)實(shí)例。 技術(shù)效果
[0018] 與現(xiàn)有技術(shù)相比,本發(fā)明通過(guò)對(duì)請(qǐng)求和服務(wù)實(shí)例分別進(jìn)行分組,根據(jù)分析決策模 塊依次進(jìn)行分組匹配和個(gè)體匹配,將請(qǐng)求W更加細(xì)粒度的方式分發(fā)請(qǐng)求到不同服務(wù)實(shí)例 上,使得集群處于較高的資源使用率,防止硬件空置帶來(lái)的經(jīng)濟(jì)損失;同時(shí),從請(qǐng)求的響應(yīng) 時(shí)間來(lái)看,通過(guò)將請(qǐng)求分配給負(fù)荷相對(duì)較低的服務(wù)實(shí)例,保證請(qǐng)求的響應(yīng)時(shí)間,提高系統(tǒng)的 每秒請(qǐng)求處理數(shù),避免資源擱淺。
【附圖說(shuō)明】
[0019]圖巧本發(fā)明原理圖;
[0020] 圖2為實(shí)施例示意圖;
[0021] 圖3為實(shí)施例響應(yīng)時(shí)間和資源使用率的優(yōu)化結(jié)果;
[0022] 圖4為實(shí)施例與現(xiàn)有技術(shù)對(duì)不同請(qǐng)求數(shù)量占用內(nèi)存的平均使用率曲線圖;
[0023] 圖5為實(shí)施例與現(xiàn)有技術(shù)對(duì)不同請(qǐng)求數(shù)量CPU的平均使用率曲線圖。
【具體實(shí)施方式】
[0024] 下面對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明,本實(shí)施例在W本發(fā)明技術(shù)方案為前提下進(jìn)行 實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施 例。 實(shí)施例1
[0025] 如圖1和圖2所示,本實(shí)施例包括:路由模塊、請(qǐng)求處理模塊、數(shù)據(jù)支持模塊、分析決 策模塊、服務(wù)實(shí)例選擇模塊和請(qǐng)求-服務(wù)實(shí)例匹配器,其中:客戶端的請(qǐng)求通過(guò)路由模塊發(fā) 送至請(qǐng)求處理模塊,請(qǐng)求處理模塊調(diào)用數(shù)據(jù)支持模塊和分析決策模塊對(duì)請(qǐng)求進(jìn)行分析和分 類,并將請(qǐng)求的分類結(jié)果發(fā)送至請(qǐng)求-服務(wù)實(shí)例匹配器;請(qǐng)求-服務(wù)實(shí)例匹配器向服務(wù)實(shí)例 選擇模塊發(fā)起選擇要求,服務(wù)實(shí)例選擇模塊調(diào)用數(shù)據(jù)支持模塊和分析決策模塊進(jìn)行服務(wù)實(shí) 例的解析和選擇,并將服務(wù)實(shí)例的選擇結(jié)果發(fā)送至請(qǐng)求-服務(wù)實(shí)例匹配器;請(qǐng)求-服務(wù)實(shí)例 匹配器根據(jù)請(qǐng)求的分類結(jié)果和服務(wù)實(shí)例的選擇結(jié)果,調(diào)用分析決策模塊依次進(jìn)行分組匹配 和個(gè)體匹配,并根據(jù)匹配結(jié)果將請(qǐng)求分發(fā)至對(duì)應(yīng)的服務(wù)實(shí)例,實(shí)現(xiàn)資源的響應(yīng)。
[0026] 所述的客戶端是服務(wù)的消費(fèi)方,即請(qǐng)求的發(fā)起方,所有對(duì)集群的訪問(wèn)請(qǐng)求都來(lái)自 客戶端。對(duì)于一個(gè)服務(wù)而言,其客戶端是多樣化的,可為不同的終端設(shè)備、瀏覽器或軟件。
[0027] 所述的路由模塊將通過(guò)公網(wǎng)或內(nèi)網(wǎng)發(fā)起的訪問(wèn)請(qǐng)求與后臺(tái)對(duì)應(yīng)的IP地址進(jìn)行配 對(duì),配對(duì)成功則將請(qǐng)求發(fā)送至請(qǐng)求處理模塊。
[0028] 所述的內(nèi)網(wǎng)IP地址為虛擬集群IP。
[00巧]所述的公網(wǎng)IP地址可為云IP地址、節(jié)點(diǎn)IP地址和端口。
[0030] 所述的分析決策模塊包括:請(qǐng)求分析算法、匹配算法、服務(wù)實(shí)例分析算法和選擇算 法。
[0031] 所述的請(qǐng)求處理模塊包括:請(qǐng)求分類器和請(qǐng)求分析器,其中:請(qǐng)求分析器對(duì)請(qǐng)求進(jìn) 行url識(shí)別,綜合數(shù)據(jù)支持模塊得出請(qǐng)求的CPU和內(nèi)存占用情況,并將結(jié)果發(fā)送至請(qǐng)求分類 器,請(qǐng)求分類器執(zhí)行請(qǐng)求分析算法得到請(qǐng)求按所訪問(wèn)的資源得到的分類。
[0032] 所述的分析和分類是指:請(qǐng)求處理模塊調(diào)用數(shù)據(jù)支持模塊,根據(jù)歷史數(shù)據(jù)對(duì)請(qǐng)求 的CPU和內(nèi)存占用情況進(jìn)行分析,并調(diào)用請(qǐng)求分析算法,根據(jù)歷史數(shù)據(jù)對(duì)請(qǐng)求按所訪問(wèn)的資 源進(jìn)行分類,得到CPU密集型和內(nèi)存密集型兩種類別的請(qǐng)求,具體包括W下步驟:
[0033] 步驟1、將各個(gè)歷史請(qǐng)求對(duì)服務(wù)實(shí)例如CPU資源和內(nèi)存資源的需求分別組成集合: Rc= ki,C2,C3, 一1,141= {mi,m2,m3,···},其中:ci和mi分別為單個(gè)請(qǐng)求對(duì)CPU和內(nèi)存的耗費(fèi)量 (即請(qǐng)求的日志中CPU資源或內(nèi)存資源的相對(duì)使用率),得到對(duì)應(yīng)的耗費(fèi)量概率分布函數(shù):
[0034] 步驟2、已知收到的請(qǐng)求對(duì)CPU資源和內(nèi)存資源的耗費(fèi)量分別為C0和mo,則可得到該 請(qǐng)求對(duì)兩種資源的耗費(fèi)量在所有請(qǐng)求中的百分比占位:pc = Fc(co)和pM = FM(m〇),并比較兩 個(gè)值PC和PM,較大的值所代表的資源即為該請(qǐng)求占用最大的資源種類,因此可將請(qǐng)求分為 CPU密集型與內(nèi)存密集型兩個(gè)種類。
[0035] 所述的數(shù)據(jù)支持模塊包括:請(qǐng)求歷史日志和服務(wù)實(shí)例狀態(tài),其中:請(qǐng)求歷史日志存 儲(chǔ)所有歷史請(qǐng)求數(shù)據(jù),服務(wù)實(shí)例狀態(tài)存儲(chǔ)容器集群管理系統(tǒng)收集得到的服務(wù)實(shí)例的負(fù)載情 況。
[0036] 所述的請(qǐng)求歷史日志記錄并更新請(qǐng)求的相關(guān)信息,W分析請(qǐng)求的計(jì)算資源依賴類 型,用W進(jìn)行更精確的調(diào)度。
[0037] 所述的相關(guān)信息是指:請(qǐng)求從被提交至服務(wù)實(shí)例,至被處理后最終返回響應(yīng)的整 個(gè)過(guò)程調(diào)用及相應(yīng)花費(fèi)的時(shí)間,并將同一請(qǐng)求的日志按時(shí)間拼接形成完整的日志序列。
[0038] 所述的容器集群管理系統(tǒng)自帶的監(jiān)控組件收集各個(gè)主機(jī)的負(fù)載情況,并進(jìn)行匯 總,得到服務(wù)實(shí)例的負(fù)載情況,如CPU和內(nèi)存的使用率。
[0039] 所述的服務(wù)實(shí)例選擇模塊包括:服務(wù)實(shí)例整理器和服務(wù)實(shí)例解析器,其中:服務(wù)實(shí) 例解析器抽取服務(wù)實(shí)例負(fù)載基礎(chǔ)樣本并發(fā)送至服務(wù)實(shí)例整理器進(jìn)行服務(wù)實(shí)例選擇。
[0040] 所述的服務(wù)實(shí)例解析器調(diào)用選擇算法,從集群中正在工作的Μ個(gè)服務(wù)實(shí)例中平均 取出Ν個(gè)服務(wù)實(shí)例作為樣本供服務(wù)實(shí)例選擇模塊使用。
[0041] 本實(shí)施例將開(kāi)銷鎖定在常數(shù)級(jí)別Ν上,大大減少了額外開(kāi)銷。
[0042] 所述的分組匹配是指:根據(jù)請(qǐng)求所訪問(wèn)的資源分類,調(diào)用匹配算法和服務(wù)實(shí)例分 析算法尋找對(duì)應(yīng)的服務(wù)實(shí)例組,并查看該服務(wù)實(shí)例組對(duì)應(yīng)的資源是否可用;如果可用,則將 請(qǐng)求分發(fā)至該服務(wù)實(shí)例組;否則,將請(qǐng)求分發(fā)至請(qǐng)求-服務(wù)實(shí)例匹配器內(nèi)維護(hù)的資源匹配表 中對(duì)應(yīng)的資源標(biāo)記為可用的服務(wù)實(shí)例組;如果未找到對(duì)應(yīng)的服務(wù)實(shí)例組,則隨機(jī)選擇一個(gè) 尚未被分組的服務(wù)實(shí)例根據(jù)服務(wù)實(shí)例分組規(guī)則進(jìn)行自動(dòng)分組,并將請(qǐng)求分發(fā)至該服務(wù)實(shí)例 組。
[0043] 所述的服務(wù)實(shí)例分組規(guī)則是指:根據(jù)服務(wù)實(shí)例處理的第一個(gè)請(qǐng)求所屬的訪問(wèn)資源 對(duì)服務(wù)實(shí)例進(jìn)行分組,同一組的服務(wù)實(shí)例所處理的請(qǐng)求均訪問(wèn)同一資源。
[0044] 所述的服務(wù)實(shí)例組維護(hù)自身對(duì)應(yīng)資源的可用情況,當(dāng)某一計(jì)算資源的使用率超過(guò) 闊值時(shí),該服務(wù)實(shí)例組的資源標(biāo)記不可用;當(dāng)該計(jì)算資源的使用率降至闊值W下時(shí),重新標(biāo) 記可用。
[0045] 所述的個(gè)體匹配是指:調(diào)用匹配算法和服務(wù)實(shí)例分析算法,在請(qǐng)求分入的服務(wù)實(shí) 例組中隨機(jī)抽取Κ個(gè)服務(wù)實(shí)例組成候選服務(wù)實(shí)例組,在候選服務(wù)實(shí)例組內(nèi)依據(jù)請(qǐng)求的計(jì)算 資源類型,通過(guò)組內(nèi)服務(wù)實(shí)例資源分析規(guī)則找出對(duì)應(yīng)資源的備選服務(wù)實(shí)例,作為處理該請(qǐng) 求的最終服務(wù)實(shí)例。
[0046] 所述的組內(nèi)服務(wù)實(shí)例資源分析規(guī)則是指:將同一服務(wù)實(shí)例組內(nèi)計(jì)算資源使用率最 小的服務(wù)實(shí)例作為備選服務(wù)實(shí)例。
[0047] 本實(shí)施例的數(shù)據(jù)支持模塊只需進(jìn)行一次學(xué)習(xí)便能生成所有請(qǐng)求的相關(guān)信息,不會(huì) 帶來(lái)額外開(kāi)銷。
[004引
[0049]本實(shí)施例的工作技術(shù)指標(biāo)與國(guó)內(nèi)外同類產(chǎn)品的技術(shù)參數(shù)的比較如表1所示。
[(Κ)加]表1技術(shù)參數(shù)對(duì)照表
[0051] 本實(shí)施例與現(xiàn)有技術(shù)對(duì)資源的平均響應(yīng)時(shí)間的比較如表2所示。
[0052] 表2資源平均響應(yīng)時(shí)間對(duì)照表(單位:ms)_
[0053] 如圖3~5所示,現(xiàn)有技術(shù)將請(qǐng)求均勻分布到每個(gè)服務(wù)實(shí)例上,沒(méi)有考慮請(qǐng)求本身 的特點(diǎn),從而導(dǎo)致資源利用率不高;而本實(shí)施例在選擇服務(wù)實(shí)例的時(shí)候,系統(tǒng)會(huì)進(jìn)行兩次匹 配,在第一次匹配時(shí),會(huì)根據(jù)資源的信息進(jìn)行請(qǐng)求的轉(zhuǎn)發(fā)。對(duì)同一個(gè)資源的請(qǐng)求,會(huì)分發(fā)給 特定的服務(wù)實(shí)例組。之后,在該組服務(wù)實(shí)例組中,系統(tǒng)的第二次匹配會(huì)選擇出一個(gè)合適的服 務(wù)實(shí)例,由該服務(wù)實(shí)例處理此請(qǐng)求。運(yùn)樣的匹配,使得請(qǐng)求的響應(yīng)時(shí)間更加友好。同時(shí)可解 決資源擱淺的情況,即因?yàn)閷?duì)同一資源的請(qǐng)求,其需要的硬件資源相對(duì)同質(zhì)化,因此對(duì)于接 受該類請(qǐng)求的服務(wù)實(shí)例而言,會(huì)出現(xiàn)某一種或幾種計(jì)算資源使用率很高,而其他幾種計(jì)算 資源空置的情況。
[0054] 本實(shí)施例引入了不同于直接根據(jù)資源來(lái)劃分的分配方式。在該類匹配中,系統(tǒng)會(huì) 將一部分該類型資源的請(qǐng)求分發(fā)至處理其他類型資源請(qǐng)求的服務(wù)實(shí)例上,而原本資源被擱 淺的服務(wù)實(shí)例,也會(huì)被分發(fā)到其他類型的請(qǐng)求,W解決資源空置的問(wèn)題。
[0055] 本實(shí)施例能夠W更加細(xì)粒度的方式分發(fā)請(qǐng)求到不同服務(wù)實(shí)例上,從資源使用率的 角度而言,可W使得集群處于較高的資源使用率,防止硬件空置帶來(lái)的經(jīng)濟(jì)損失。與此同 時(shí),從請(qǐng)求的響應(yīng)時(shí)間來(lái)看,通過(guò)將請(qǐng)求分配給負(fù)荷最低的服務(wù)實(shí)例,保證請(qǐng)求的響應(yīng)時(shí) 間,提高系統(tǒng)的每秒查詢率(QPS)。
【主權(quán)項(xiàng)】
1. 一種基于容器集群負(fù)載均衡算法的細(xì)粒度資源響應(yīng)系統(tǒng),其特征在于,包括:請(qǐng)求處 理模塊、數(shù)據(jù)支持模塊、分析決策模塊、服務(wù)實(shí)例選擇模塊和請(qǐng)求-服務(wù)實(shí)例匹配器,其中: 請(qǐng)求處理模塊調(diào)用數(shù)據(jù)支持模塊和分析決策模塊對(duì)請(qǐng)求進(jìn)行分析和分類,并將請(qǐng)求的分類 結(jié)果發(fā)送至請(qǐng)求-服務(wù)實(shí)例匹配器;請(qǐng)求-服務(wù)實(shí)例匹配器向服務(wù)實(shí)例選擇模塊發(fā)起選擇要 求,服務(wù)實(shí)例選擇模塊調(diào)用數(shù)據(jù)支持模塊和分析決策模塊進(jìn)行服務(wù)實(shí)例的解析和選擇,并 將服務(wù)實(shí)例的選擇結(jié)果發(fā)送至請(qǐng)求-服務(wù)實(shí)例匹配器;請(qǐng)求-服務(wù)實(shí)例匹配器根據(jù)請(qǐng)求的分 類結(jié)果和服務(wù)實(shí)例的選擇結(jié)果,調(diào)用分析決策模塊依次進(jìn)行分組匹配和個(gè)體匹配,并根據(jù) 匹配結(jié)果將請(qǐng)求分發(fā)至對(duì)應(yīng)的服務(wù)實(shí)例,實(shí)現(xiàn)資源的響應(yīng)。2. 根據(jù)權(quán)利要求1所述的細(xì)粒度資源響應(yīng)系統(tǒng),其特征是,所述的分析決策模塊包括: 請(qǐng)求分析算法、匹配算法、服務(wù)實(shí)例分析算法和選擇算法。3. 根據(jù)權(quán)利要求1所述的細(xì)粒度資源響應(yīng)系統(tǒng),其特征是,所述的請(qǐng)求處理模塊包括: 請(qǐng)求分類器和請(qǐng)求分析器,其中:請(qǐng)求分析器對(duì)請(qǐng)求進(jìn)行url識(shí)別,綜合數(shù)據(jù)支持模塊得出 請(qǐng)求的CPU和內(nèi)存占用情況,并將結(jié)果發(fā)送至請(qǐng)求分類器,請(qǐng)求分類器執(zhí)行請(qǐng)求分析算法得 到請(qǐng)求按所訪問(wèn)的資源得到的分類。4. 根據(jù)權(quán)利要求1所述的細(xì)粒度資源響應(yīng)系統(tǒng),其特征是,所述的按照資源需求對(duì)請(qǐng)求 進(jìn)行分析和分類包括以下步驟: 步驟1、將各個(gè)歷史請(qǐng)求對(duì)不同服務(wù)實(shí)例的需求分別組成集合,得到對(duì)應(yīng)的耗費(fèi)量概率 分布函數(shù); 步驟2、已知收到的請(qǐng)求對(duì)不同服務(wù)實(shí)例的耗費(fèi)量,則可得到該請(qǐng)求對(duì)不同服務(wù)實(shí)例的 耗費(fèi)量在所有請(qǐng)求中的百分比占位,并比較兩個(gè)值,較大的值所代表的資源即為該請(qǐng)求占 用最大的資源種類,因此將請(qǐng)求分為該服務(wù)實(shí)例密集型。5. 根據(jù)權(quán)利要求1所述的細(xì)粒度資源響應(yīng)系統(tǒng),其特征是,所述的數(shù)據(jù)支持模塊包括: 請(qǐng)求歷史日志和服務(wù)實(shí)例狀態(tài),其中:請(qǐng)求歷史日志存儲(chǔ)所有歷史請(qǐng)求數(shù)據(jù),服務(wù)實(shí)例狀態(tài) 存儲(chǔ)容器集群管理系統(tǒng)收集得到的服務(wù)實(shí)例的負(fù)載情況。6. 根據(jù)權(quán)利要求1所述的細(xì)粒度資源響應(yīng)系統(tǒng),其特征是,所述的服務(wù)實(shí)例選擇模塊包 括:服務(wù)實(shí)例整理器和服務(wù)實(shí)例解析器,其中:服務(wù)實(shí)例解析器抽取服務(wù)實(shí)例負(fù)載基礎(chǔ)樣本 并發(fā)送至服務(wù)實(shí)例整理器進(jìn)行服務(wù)實(shí)例選擇。7. 根據(jù)權(quán)利要求1所述的細(xì)粒度資源響應(yīng)系統(tǒng),其特征是,所述的服務(wù)實(shí)例解析器調(diào)用 選擇算法,從集群中正在工作的服務(wù)實(shí)例中平均取出若干個(gè)服務(wù)實(shí)例作為樣本供服務(wù)實(shí)例 選擇模塊使用。8. 根據(jù)權(quán)利要求1所述的細(xì)粒度資源響應(yīng)系統(tǒng),其特征是,所述的分組匹配是指:根據(jù) 請(qǐng)求所訪問(wèn)的資源分類,調(diào)用匹配算法和服務(wù)實(shí)例分析算法尋找對(duì)應(yīng)的服務(wù)實(shí)例組,并查 看該服務(wù)實(shí)例組對(duì)應(yīng)的資源是否可用;如果可用,則將請(qǐng)求分發(fā)至該服務(wù)實(shí)例組;否則,將 請(qǐng)求分發(fā)至請(qǐng)求-服務(wù)實(shí)例匹配器內(nèi)維護(hù)的資源匹配表中對(duì)應(yīng)的資源標(biāo)記為可用的服務(wù)實(shí) 例組;如果未找到對(duì)應(yīng)的服務(wù)實(shí)例組,則隨機(jī)選擇一個(gè)尚未被分組的服務(wù)實(shí)例根據(jù)服務(wù)實(shí) 例分組規(guī)則進(jìn)行自動(dòng)分組,并將請(qǐng)求分發(fā)至該服務(wù)實(shí)例組; 所述的服務(wù)實(shí)例分組規(guī)則是指:根據(jù)服務(wù)實(shí)例處理的第一個(gè)請(qǐng)求所屬的訪問(wèn)資源對(duì)服 務(wù)實(shí)例進(jìn)行分組,同一組的服務(wù)實(shí)例所處理的請(qǐng)求均訪問(wèn)同一資源。9. 根據(jù)權(quán)利要求1所述的細(xì)粒度資源響應(yīng)系統(tǒng),其特征是,所述的個(gè)體匹配是指:所述 的個(gè)體匹配是指:調(diào)用匹配算法和服務(wù)實(shí)例分析算法,在請(qǐng)求分入的服務(wù)實(shí)例組中隨機(jī)抽 取若干個(gè)服務(wù)實(shí)例組成候選服務(wù)實(shí)例組,在候選服務(wù)實(shí)例組內(nèi)依據(jù)請(qǐng)求的計(jì)算資源類型, 通過(guò)組內(nèi)服務(wù)實(shí)例資源分析規(guī)則找出對(duì)應(yīng)資源的備選服務(wù)實(shí)例,作為處理該請(qǐng)求的最終服 務(wù)實(shí)例; 所述的組內(nèi)服務(wù)實(shí)例資源分析規(guī)則是指:將同一服務(wù)實(shí)例組內(nèi)計(jì)算資源使用率最小的 服務(wù)實(shí)例作為備選服務(wù)實(shí)例。
【文檔編號(hào)】H04L29/08GK105872082SQ201610329233
【公開(kāi)日】2016年8月17日
【申請(qǐng)日】2016年5月18日
【發(fā)明人】夏亦謙, 張堅(jiān)鑫, 孫浩然, 李桐宇, 高策, 任銳, 蔡鴻明
【申請(qǐng)人】上海交通大學(xué)