云計算的負載均衡方法及系統的制作方法
【專利摘要】本發明公開了一種云計算的負載均衡方法及系統,該方法包括:負載均衡器集群中的各監控節點向伸縮服務節點發送監控信息,其中,負載均衡器集群包括至少一個負載均衡器,負載均衡器與監控節點一一對應;負載均衡器接收伸縮服務節點返回的伸縮控制指令;負載均衡器按照伸縮控制指令控制自身的開啟或關閉。實現了對負載均衡服務的精細管理和控制,從而使負載均衡服務更好的為應用服務,極大地節約了應用以及平臺的運維成本,提高了資源的利用率,避免了云平臺提供的負載均衡服務的瓶頸。
【專利說明】
云計算的負載均衡方法及系統
技術領域
[0001]本發明涉及負載均衡領域,尤其涉及一種云計算的負載均衡方法及系統。
【背景技術】
[0002]隨著云計算技術的日益普及和云計算的大量工業化應用,云計算在實現服務的高可用性、處理能力的可擴展性等方面的優勢越來越多地被業界認可。平臺即服務(Platformas a Service,簡稱為PaaS)作為云計算的一種重要形式,其地位與日倶增。Paas能夠使得應用快速的開發、部署、測試、上線,有效地節約了成本,同時也提高了效率。
[0003]負載均衡服務是PaaS平臺提供給應用的一個核心服務,使得應用在開發期就不必考慮上線運行時的負載該如何處理。負載均衡服務能夠檢測應用的負載情況,并采取最優的負載策略。在非云計算環境下,一般采用硬件的負載均衡設備,但由于硬件的負載均衡設備價格昂貴、不易擴展,因此在云計算環境下,更多的采用的是軟件負載均衡,如nginx,
haproxy^o
[0004]云計算環境下采用的負載設備往往是軟件形式的,如haproxy,它的負載能力要遠弱于硬件的負載設備。同時,在云計算環境下應用是能夠動態伸縮的,當應用在特定條件下進行擴展伸縮后,超過了其相應的負載均衡器所能承受的最大負載閾值時,就會導致應用訪問慢甚至無法訪問的情況。云計算環境下,傳統的軟負載均衡架構如圖1所示,負載均衡服務采用主備模式,例如,采用主備的haproxy作為負載均衡服務,每個haproxy能夠負載的應用有一定的數量限制,主備模式使得實際工作的時候僅有主的負載均衡服務在提供服務,該模式能夠解決一定的高可用問題,卻無法解決當應用數量達到負載服務上限后的問題。
[0005]因此,使用如圖1所示的傳統的軟件負載均衡架構時,負載均衡指的是應用層負載,如果應用數量達到負載均衡器的上限,則對正常的負載均衡服務會有所影響,即沒有考慮負載均衡器本身的負載情況。針對上述問題,目前尚未提出有效的解決方案。
【發明內容】
[0006]本發明提供了一種云計算的負載均衡方法及系統,以至少解決目前的軟件負載均衡架構,大量云應用使用負載均衡服務時導致的瓶頸問題。
[0007]根據本發明的一個方面,提供了一種云計算的負載均衡方法,包括:負載均衡器集群中的各監控節點向伸縮服務節點發送監控信息,其中,所述負載均衡器集群包括至少一個負載均衡器,所述負載均衡器與所述監控節點一一對應;所述負載均衡器接收所述伸縮服務節點返回的伸縮控制指令;所述負載均衡器按照所述伸縮控制指令控制自身的開啟或關閉。
[0008]在一個實施例中,在所述負載均衡器接收所述伸縮服務節點返回的伸縮控制指令之前,所述方法還包括:所述伸縮服務節點接收所述監控信息;所述伸縮服務節點對所述監控信息進行過濾;所述伸縮服務節點根據預設伸縮策略和過濾后的監控信息,生成所述伸縮控制指令。
[0009]在一個實施例中,所述預設伸縮策略包括:在預設時間段內所述負載均衡器的當前會話數超過預設的最大會話數,則增加負載均衡服務;或者在所述預設時間段內所述負載均衡器的當前請求數達到隊列限制大小的預設閾值,則增加負載均衡服務。
[0010]在一個實施例中,在生成所述伸縮控制指令之后,所述方法還包括:存儲所述監控
?目息O
[0011]在一個實施例中,在負載均衡器集群中的各監控節點向伸縮服務節點發送監控信息之前,所述方法還包括:云平臺配置預設伸縮策略。
[0012]在一個實施例中,在所述負載均衡器按照所述伸縮控制指令控制自身的開啟或關閉之后,所述方法還包括:配置管理節點更新所述負載均衡器集群中各負載均衡器的狀態
?目息O
[0013]在一個實施例中,所述監控信息包括:負載均衡器的當前會話、最大會話、服務器權重、隊列限制。
[0014]根據本發明的另一個方面,提供了一種云計算的負載均衡系統,包括:負載均衡器集群和伸縮服務節點,其中,所述負載均衡器集群包括至少一個負載均衡器和至少一個監控節點,所述負載均衡器與所述監控節點一一對應;所述監控節點,用于向所述伸縮服務節點發送監控信息;所述伸縮服務節點,用于返回伸縮控制指令;所述負載均衡器,用于接收所述伸縮控制指令,以及按照所述伸縮控制指令控制自身的開啟或關閉。
[0015]在一個實施例中,所述伸縮服務節點具體用于:接收所述監控信息,對所述監控信息進行過濾,并根據預設伸縮策略和過濾后的監控信息生成所述伸縮控制指令。
[0016]在一個實施例中,所述系統還包括:存儲單元,用于存儲所述監控信息。
[0017]通過本發明的云計算的負載均衡方法及系統,采集負載均衡器的監控信息,根據監控信息得到伸縮控制指令,決定負載均衡器是否需要伸縮,實現了對負載均衡服務的精細管理和控制,從而使負載均衡服務更好的為應用服務,極大地節約了應用以及平臺的運維成本,提高了資源的利用率,避免了云平臺提供的負載均衡服務的瓶頸。
【附圖說明】
[0018]此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的限定。在附圖中:
[0019]圖1是本發明實施例的云計算環境下傳統的軟負載均衡架構圖;
[0020]圖2是本發明實施例的云計算的負載均衡方法的流程圖;
[0021]圖3是本發明實施例的云計算的負載均衡系統的結構框圖;
[0022]圖4是本發明實施例的云計算的負載均衡系統的另一結構框圖;
[0023]圖5是本發明實施例的云計算的負載均衡系統的架構圖;
[0024]圖6是本發明實施例的負載均衡系統的模塊間調用關系示意圖。
【具體實施方式】
[0025]下面結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明的保護范圍。
[0026]本發明實施例提供了一種云計算的負載均衡方法,圖2是本發明實施例的云計算的負載均衡方法的流程圖,如圖2所示,該方法包括如下步驟:
[0027]步驟S201,負載均衡器集群中的各監控節點向伸縮服務節點發送監控信息,其中,負載均衡器集群包括至少一個負載均衡器,負載均衡器與監控節點--對應;
[0028]步驟S202,負載均衡器接收伸縮服務節點返回的伸縮控制指令;
[0029]步驟S203,負載均衡器按照伸縮控制指令控制自身的開啟或關閉。
[0030]上述實施例的方法,通過采集負載均衡器的監控信息,根據監控信息得到伸縮控制指令,決定負載均衡器是否需要伸縮,實現了對負載均衡服務的精細管理和控制,從而使負載均衡服務更好的為應用服務,極大地節約了應用以及平臺的運維成本,提高了資源的利用率,避免了云平臺提供的負載均衡服務的瓶頸。
[0031]上述監控信息可以包括:負載均衡器的當前會話、最大會話、服務器權重、隊列限制。
[0032]在步驟S201之前,上述方法還可以包括:云平臺配置預設伸縮策略。
[0033]在一個實施例中,在步驟S202之前,上述方法還可以包括:伸縮服務節點接收監控信息;伸縮服務節點對監控信息進行過濾;伸縮服務節點根據預設伸縮策略和過濾后的監控信息,生成伸縮控制指令。具體的,可以通過復雜事件處理對監控信息進行過濾,例如,使用Esper引擎來分析和過濾實時的監控信息。上述預設伸縮策略可以包括:在預設時間段內負載均衡器的當前會話數超過預設的最大會話數,則增加負載均衡服務;或者在預設時間段內負載均衡器的當前請求數達到隊列限制大小的預設閾值,則增加負載均衡服務。
[0034]本實施例中,伸縮服務節點采集負載均衡器的監控信息,經過伸縮策略服務的復雜事件處理,同時結合由云平臺自主定義的伸縮策略,最終決定了負載均衡器是否需要伸縮,極大地節約了應用以及平臺的運維成本,提高了資源的利用率,避免了云平臺提供的負載均衡服務的瓶頸。
[0035]在生成伸縮控制指令之后,上述方法還可以包括:存儲監控信息。方便后續查看。
[0036]在步驟S203之后,上述方法還可以包括:配置管理節點更新負載均衡器集群中各負載均衡器的狀態信息。及時更新負載均衡器的狀態,能夠更好地進行負載均衡服務的伸縮。
[0037]基于同一發明構思,本發明實施例還提供了一種云計算的負載均衡系統,可以用于實現上述實施例所描述的方法,如下面的實施例所述。由于該系統解決問題的原理與上述方法相似,因此該系統的實施可以參見上述方法的實施,重復之處不再贅述。以下所使用的,術語“單元”或者“模塊”可以實現預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的系統較佳地以軟件來實現,但是硬件,或者軟件和硬件的組合的實現也是可能并被構想的。
[0038]圖3是本發明實施例的云計算的負載均衡系統的結構框圖,如圖3所示,該系統包括:負載均衡器集群10和伸縮服務節點20,其中,負載均衡器集群10包括至少一個負載均衡器11和至少一個監控節點12,負載均衡器11與監控節點12—一對應。
[0039]監控節點12,用于向伸縮服務節點20發送監控信息;
[0040]所述伸縮服務節點20,用于返回伸縮控制指令;
[0041 ]負載均衡器11,用于接收伸縮控制指令,以及按照伸縮控制指令控制自身的開啟或關閉。
[0042]上述實施例的系統,通過采集負載均衡器的監控信息,根據監控信息得到伸縮控制指令,決定負載均衡器是否需要伸縮,實現了對負載均衡服務的精細管理和控制,從而使負載均衡服務更好的為應用服務,極大地節約了應用以及平臺的運維成本,提高了資源的利用率,避免了云平臺提供的負載均衡服務的瓶頸。
[0043]上述監控信息可以包括:負載均衡器的當前會話、最大會話、服務器權重、隊列限制。
[0044]如圖4所示,上述系統還可以包括:云平臺30,用于配置預設伸縮策略。預設伸縮策略可以包括:在預設時間段內負載均衡器的當前會話數超過預設的最大會話數,則增加負載均衡服務;或者在預設時間段內負載均衡器的當前請求數達到隊列限制大小的預設閾值,則增加負載均衡服務。
[0045]伸縮服務節點20具體用于:接收監控信息,對監控信息進行過濾,并根據預設伸縮策略和過濾后的監控信息生成伸縮控制指令。
[0046]上述系統還可以包括:存儲單元40,用于存儲監控信息。
[0047]上述系統還可以包括:配置管理節點50,用于更新負載均衡器集群中各負載均衡器的狀態信息。
[0048]當然,上述模塊劃分只是一種示意劃分,本發明并不局限于此。只要能實現本發明的目的的模塊劃分,均應屬于本發明的保護范圍。
[0049]為了對上述云計算的負載均衡方法及系統進行更為清楚的解釋,下面結合具體的實施例來進行說明,然而值得注意的是該實施例僅是為了更好地說明本發明,并不構成對本發明不當的限定。
[0050]云計算的負載均衡系統的架構圖如圖5所示,與傳統的架構相比,使用集群負載均衡模式,提高了應用的高可用性;同時為負載均衡服務增加了伸縮策略服務,使得負載均衡服務能夠根據當前對應用的負載情況來判斷是否需要在集群內進行負載服務的伸縮(即添加或刪除)。
[0051]圖6是本發明實施例的負載均衡系統的模塊間調用關系示意圖,該框架包括:負載均衡器集群(包括負載均衡器和監控節點)、伸縮策略服務、統一命名服務以及消息隊列服務。基于該架構能夠實現對負載均衡服務的精細管理和控制,從而使負載均衡服務更好的為應用服務,極大的節約運維成本,提高資源利用率。下面分別進行說明。
[0052]云平臺即PaaS平臺的管理控制臺,維護著平臺各個服務以及各個應用的運行與監控,此處主要用來配置負載均衡服務的動態伸縮策略。
[0053]伸縮策略服務是控制負載均衡服務實際伸縮的節點,它能接收來自負載均衡服務監控節點發來的各種監控數據或信息,通過復雜事件處理將這些數據進行過濾,配合云平臺的伸縮策略對是否伸縮發出具體的指令。例如,具體伸縮策略可以為在某一段時間內某一負載均衡器的當前會話數超過了設定的最大會話數或者當前請求數達到了隊列限制大小的80%。復雜事件處理可以使用Esper引擎來分析和過濾實時的監控數據,依據云平臺配置的伸縮策略來匹配監控數據隊列,如持續的10分鐘內請求數達到了隊列限制的80%,則需要增加負載均衡服務。分析和過濾完的監控數據可以保存到數據庫中。
[0054]負載均衡器集群是負載均衡服務的集群實現,用來給具體的云應用提供負載均衡服務。
[0055]統一命名服務(配置管理)用于在運行期更改負載均衡器的伸縮策略以及負載均衡器集群的配置信息。配置信息將配置對象放入ZooKeeper集群的配置節點上,由伸縮策略服務監聽配置節點,當負載均衡服務進行伸縮時,動態更新ZooKeeper集群里的負載配置節點。負載集群的配置信息與監控信息相同,主要為負載均衡器的當前會話、最大會話、服務器權重、隊列限制等。
[0056]監控節點可以是代理Agent,在負載均衡器中持續運行,執行管理節點的任務并將反饋結果給伸縮策略服務。監控的內容(即監控信息)主要為負載均衡器的當前會話、最大會話、服務器權重、隊列限制等,是一個動態的內容信息。
[0057]消息隊列服務(信息傳輸)用于實現消息接口,完成伸縮策略服務與監控節點之間的消息交互。當伸縮策略服務中的靜態伸縮策略匹配到監控節點發來的動態內容時,觸發伸縮。
[0058]數據庫(信息入庫)S卩PaaS平臺的內部數據庫,此處用來存放負載均衡器的監控信息。
[0059]統一入口即PaaS平臺上應用訪問的統一入口,可以由F5+Nginx組成,是互聯網訪問平臺應用的唯一入口,外部請求經由F5和Nginx后,被分發到各個負載均衡器上。
[0060]通過上述各個模塊,能夠做到負載均衡服務的動態伸縮,伸縮策略可以由云平臺自定義,提高了應用負載服務的靈活性,同時也增加了高可用性。
[0061]綜上所述,本發明提出一種在云計算PaaS環境下通過監控負載均衡器的使用情況,對負載均衡器進行動態伸縮的方法,對云計算環境中的負載均衡服務進行統一的運行期管理和集群伸縮,克服傳統架構的缺陷,解決了大量云應用使用負載均衡服務可能遇到的瓶頸問題,保證PaaS平臺的穩定運行。
[0062]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,并且本發明的優選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明的實施例所屬技術領域的技術人員所理解。
[0063]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
[0064]以上所述的具體實施例,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,并不用于限定本發明的保護范圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【主權項】
1.一種云計算的負載均衡方法,其特征在于,包括: 負載均衡器集群中的各監控節點向伸縮服務節點發送監控信息,其中,所述負載均衡器集群包括至少一個負載均衡器,所述負載均衡器與所述監控節點一一對應; 所述負載均衡器接收所述伸縮服務節點返回的伸縮控制指令; 所述負載均衡器按照所述伸縮控制指令控制自身的開啟或關閉。2.根據權利要求1所述的方法,其特征在于,在所述負載均衡器接收所述伸縮服務節點返回的伸縮控制指令之前,所述方法還包括: 所述伸縮服務節點接收所述監控信息; 所述伸縮服務節點對所述監控信息進行過濾; 所述伸縮服務節點根據預設伸縮策略和過濾后的監控信息,生成所述伸縮控制指令。3.根據權利要求2所述的方法,其特征在于,所述預設伸縮策略包括: 在預設時間段內所述負載均衡器的當前會話數超過預設的最大會話數,則增加負載均衡服務;或者 在所述預設時間段內所述負載均衡器的當前請求數達到隊列限制大小的預設閾值,則增加負載均衡服務。4.根據權利要求2所述的方法,其特征在于,在生成所述伸縮控制指令之后,所述方法還包括:存儲所述監控信息。5.根據權利要求1所述的方法,其特征在于,在負載均衡器集群中的各監控節點向伸縮服務節點發送監控信息之前,所述方法還包括:云平臺配置預設伸縮策略。6.根據權利要求1所述的方法,其特征在于,在所述負載均衡器按照所述伸縮控制指令控制自身的開啟或關閉之后,所述方法還包括: 配置管理節點更新所述負載均衡器集群中各負載均衡器的狀態信息。7.根據權利要求1至6中任一項所述的方法,其特征在于,所述監控信息包括:負載均衡器的當前會話、最大會話、服務器權重、隊列限制。8.—種云計算的負載均衡系統,其特征在于,包括:負載均衡器集群和伸縮服務節點,其中,所述負載均衡器集群包括至少一個負載均衡器和至少一個監控節點,所述負載均衡器與所述監控節點一一對應; 所述監控節點,用于向所述伸縮服務節點發送監控信息; 所述伸縮服務節點,用于返回伸縮控制指令; 所述負載均衡器,用于接收所述伸縮控制指令,以及按照所述伸縮控制指令控制自身的開啟或關閉。9.根據權利要求8所述的系統,其特征在于,所述伸縮服務節點具體用于:接收所述監控信息,對所述監控信息進行過濾,并根據預設伸縮策略和過濾后的監控信息生成所述伸縮控制指令。10.根據權利要求9所述的系統,其特征在于,所述系統還包括:存儲單元,用于存儲所述監控信息。
【文檔編號】H04L29/08GK105939371SQ201510822344
【公開日】2016年9月14日
【申請日】2015年11月24日
【發明人】于鑣, 陳舟
【申請人】中國銀聯股份有限公司