新四季網

一種應用服務的負載均衡方法及系統的製作方法

2023-04-28 12:42:31 3

專利名稱:一種應用服務的負載均衡方法及系統的製作方法
技術領域:
本申請涉及網絡技術,特別是涉及一種應用服務的負載均衡方法及系統。
背景技術:
負載均衡(又稱為負載分擔),英文名稱為Load Balance,其意思就是將負載(工作任務)進行平衡、分攤到多個操作單元上進行執行,例如Web伺服器、FTP伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。通常,負載均衡會根據網絡的不同層次(網絡七層)來劃分。其中,第二層的負載均衡指將多條物理鏈路當作一條單一的聚合邏輯鏈路使用,這就是鏈路聚合(Trunking) 技術,它不是一種獨立的設備,而是交換機等網絡設備的常用技術。現代負載均衡技術通常操作於網絡的第四層或第七層,這是針對網絡應用的負載均衡技術,它完全脫離於交換機、 伺服器而成為獨立的技術設備。這也是本文現在要討論的對象。負載均衡有兩方面的含義第一層含義是,單個重負載的運算分擔到多臺節點設備上做並行處理,每個節點設備處理結束後,將結果匯總,返回給用戶,系統處理能力得到大幅度提高,這就是我們常說的集群(clustering)技術。第二層含義是大量的並發訪問或數據流量分擔到多臺節點設備上分別處理,減少用戶等待響應的時間,這主要針對Web 伺服器、FTP伺服器、企業關鍵應用伺服器等網絡應用。這裡主要討論第二層含義所指的負載均衡。目前在很多網絡服務中,現有網絡的各個核心部分隨著用戶與業務量的提高,訪問量和數據流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的伺服器設備根本無法承擔。在此情況下,如果扔掉現有設備去做大量的硬體升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升時,這又將導致再一次硬體升級的高額成本投入,甚至性能再卓越的設備也不能滿足當前業務量增長的需求。基於此,目前需要解決的問題是提供一種適用於網絡服務的負載均衡方法,能夠在完成同樣功能的多個網絡設備之間實現業務量的合理分配,而不至於出現一臺設備過忙,其他設備未能充分發揮其作用的情況。

發明內容
本申請提供了一種應用服務的負載均衡方法及系統,以解決目前網絡服務中的負載均衡問題。為了解決上述問題,本申請公開了一種應用服務的負載均衡方法,包括不斷獲取後端伺服器的當前負載信息,所述當前負載信息包括後端伺服器的應用程式運行數據,或者包括後端伺服器的應用程式運行數據和性能數據;其中,所述應用程式運行數據是後端伺服器的應用程式的運行數據,所述後端伺服器為終端應用程式提供網絡服務,所述終端應用程式與後端伺服器的應用程式對應同一應用服務;在每個獲取周期內,依據所述當前負載信息重新計算後端伺服器的權重;
依據每次計算的權重調整後端伺服器的分配,並選擇後端伺服器將客戶端的接入請求進行路由。優選的,所述性能數據包括內存使用信息,和/或,CPU使用信息;所述應用程式運行數據包括實際在線人數,和/或正在下載的應用程式數,和/或正在下載的數據量,和/ 或實際連接數。優選的,所述方法還包括通過路由表維護所有可分配的後端伺服器,所述路由表中記錄了所有可分配的後端伺服器的配置信息。優選的,所述方法還包括定時獲取路由表中後端伺服器的運行狀態信息;依據所述運行狀態信息檢測相應的後端伺服器是否異常或失效,並將異常或失效的後端伺服器的配置信息從路由表中刪除。優選的,所述方法還包括通過向所述路由表中添加後端伺服器的配置信息,動態添加可分配的後端伺服器。優選的,所述方法還包括預先配置後端伺服器的最大處理能力,所述最大處理能力表示為最大在線人數、和/或應用程式的最大下載個數、和/或應用程式的最大下載數據量、和/或最大內存使用信息、和/或最大CPU使用信息;在每個獲取周期內,依據獲取的當前負載信息和所配置的最大處理能力,檢測後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。優選的,所述方法還包括每個後端伺服器上預先配置了相應的最大處理能力,所述最大處理能力表示為最大在線人數、和/或最大內存使用信息、和/或最大CPU使用信息;每個後端伺服器依據當前負載信息和所配置的最大處理能力,定時檢測是否滿載;定時獲取後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。優選的,所述定時獲取後端伺服器的當前負載信息之前,還包括根據後端服務的類型,選擇配置相適應的與後端伺服器通信的交互協議;如果後端服務的類型調整,則重新配置相適應的與後端伺服器通信的交互協議。優選的,所述定時獲取後端伺服器的當前負載信息,包括後端伺服器提供監控接口,通過所述監控接口定時獲取後端伺服器的當前負載信息。優選的,所述依據每次計算的權重調整後端伺服器的分配,並選擇後端伺服器將客戶端的接入請求進行路由,包括依據每次計算的權重調整後端伺服器的分配概率;按照所述分配概率隨機選擇後端伺服器將客戶端的接入請求進行路由。本申請還提供了一種應用服務的負載均衡系統,包括負載查詢模塊,用於不斷獲取後端伺服器的當前負載信息,所述當前負載信息包括後端伺服器的應用程式運行數據,或者包括後端伺服器的應用程式運行數據和性能數據;其中,所述應用程式運行數據是後端伺服器的應用程式的運行數據,所述後端伺服器為終端應用程式提供網絡服務,所述終端應用程式與後端伺服器的應用程式對應同一應用服務;權重計算模塊,用於在每個獲取周期內,依據所述當前負載信息重新計算後端伺服器的權重;負載調整模塊,用於依據每次計算的權重調整後端伺服器的分配,並選擇後端伺服器將客戶端的接入請求進行路由。
優選的,所述性能數據包括內存使用信息,和/或,CPU使用信息;所述應用程式運行數據包括實際在線人數,和/或應用程式的最大下載個數、和/或應用程式的最大下載數據量、和/或正在下載的應用程式數,和/或正在下載的數據量,和/或實際連接數。優選的,所述系統還包括負載維護模塊,用於通過路由表維護所有可分配的後端伺服器,所述路由表中記錄了所有可分配的後端伺服器的配置信息。優選的,所述系統還包括動態刪除模塊,用於定時獲取路由表中後端伺服器的運行狀態信息;依據所述運行狀態信息檢測相應的後端伺服器是否異常或失效,並將異常或失效的後端伺服器的配置信息從路由表中刪除。優選的,所述系統還包括動態添加模塊,用於通過向所述路由表中添加後端伺服器的配置信息,動態添加可分配的後端伺服器。優選的,所述系統還包括第一訪問控制模塊,用於預先配置後端伺服器的最大處理能力,所述最大處理能力表示為最大在線人數、和/或最大內存使用信息、和/或最大CPU 使用信息;在每個獲取周期內,依據獲取的當前負載信息和所配置的最大處理能力,檢測後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。優選的,所述系統還包括第二訪問控制模塊,用於每個後端伺服器上預先配置相應的最大處理能力,所述最大處理能力表示為最大在線人數、和/或最大內存使用信息、和 /或最大CPU使用信息;每個後端伺服器依據當前負載信息和所配置的最大處理能力,定時檢測是否滿載;定時獲取後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。優選的,所述系統還包括通信配置模塊,用於根據後端服務的類型,選擇配置相適應的與後端伺服器通信的交互協議;如果後端服務的類型調整,則重新配置相適應的與後端伺服器通信的交互協議。與現有技術相比,本申請包括以下優點首先,本申請針對高並發的客戶端請求,通過不斷獲取後端伺服器的當前負載信息,並依據所述當前負載信息計算後端伺服器的權重,然後依據每次計算的權重調整後端伺服器的分配。簡而言之,本申請在客戶端需要接入某個應用服務的時候,首先請求接入分發(dispatch)服務,該分發服務會根據後端伺服器的負載情況(如實際在線人數等),動態調整分發策略,動態地返回後端相對空閒的伺服器給客戶端接入。與傳統的應用服務的負載均衡方法相比,本申請能夠在完成同樣功能的多個網絡設備之間實現業務量的合理分配,而不至於出現一臺設備過忙,其他設備未能充分發揮其作用的情況。其次,本申請還能夠定時從後端伺服器獲取其運行狀態,如果發現某個後端伺服器的狀態異常或已經失效,可以實時地從路由表中移除,避免再將該後端伺服器分配給客戶端。相應的,也可以通過在路由表中添加後端伺服器的配置信息,而動態加入後端伺服器供分配。再次,本申請由於能夠定時獲取後端伺服器的負載情況,因此當某個後端伺服器的負載接近最大處理能力時,可以對其進行訪問控制,即不再將客戶端請求路由給該伺服器,從而有效地保護後端服務。再次,本申請中的分發(dispatch)伺服器基於Erlang框架創建,可以不局限後端服務的類型,通過動態配置分發(dispatch)伺服器與後端伺服器通信的交互協議,滿足不同類型的後端服務。
當然,實施本申請的任一產品不一定需要同時達到以上所述的所有優點。


圖I是本申請實施例所述一種應用服務的負載均衡系統的網絡架構圖;圖2是本申請實施例所述一種應用服務的負載均衡方法流程圖;圖3是本申請實施例所述一種應用服務的負載均衡系統的結構圖。
具體實施例方式為使本申請的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本申請作進一步詳細的說明。本申請所述的負載均衡主要指大量的並發訪問或數據流量分擔到多臺節點設備上分別處理,減少用戶等待響應的時間,這主要針對Web伺服器、FTP伺服器、企業關鍵應用伺服器等網絡應用。本申請在客戶端需要接入某個應用服務的時候,首先請求接入分發(dispatch) 服務,該分發服務會根據後端伺服器的負載情況(如實際在線人數等),動態調整分發策略,動態地返回後端相對空閒的伺服器給客戶端接入。下面通過實施例首先介紹本申請的網絡架構。參照圖I所示,是本申請實施例所述一種應用服務的負載均衡系統的網絡架構圖。本申請實施例所述的負載均衡主要通過分發(dispatch)伺服器實現,多個客戶端與所述分發(dispatch)伺服器連接,分發(dispatch)伺服器與多臺後端伺服器連接,其中每臺後端伺服器能夠完成冋樣的業務功能。當某客戶端發起接入應用服務的請求時,該接入請求首先路由到所述分發伺服器,分發伺服器根據後端伺服器的負載情況動態調整分配策略,並根據當前的分配策略選擇一臺伺服器,將該接入請求路由到該伺服器上處理。圖I所示的負載均衡網絡架構適用於各種網絡服務,例如頂(Instant Messenger,即時通訊)服務、雲查殺服務、雲盤服務、Push Service服務等等。基於圖1,下面通過圖2所示實施例對本申請所述方法的實現流程進行詳細說明。參照圖2所示,是本申請實施例所述一種應用服務的負載均衡方法流程圖。以頂業務為例,針對大量頂客戶端的高並發業務請求,分發(dispatch)伺服器將按照以下步驟進行負載均衡處理步驟201,不斷獲取後端伺服器的當前負載信息,所述當前負載信息包括後端伺服器的應用程式運行數據,或者包括後端伺服器的應用程式運行數據和性能數據;其中,所述應用程式運行數據是後端伺服器的應用程式的運行數據,所述後端伺服器為終端應用程式提供網絡服務,所述終端應用程式與後端伺服器的應用程式對應同一應用服務;簡而言之,提供應用服務的應用程式可分為客戶端程序和伺服器端的後臺程序, 所述終端應用程式即是指客戶端程序,所述後端伺服器的應用程式即是指後臺程序,兩者配合運行提供應用服務。
所述定時獲取可以是分發伺服器主動查詢獲取,也可以是被動獲取,即後端伺服器定時上報自己的負載情況。本申請實施例將採用主動獲取的方式,具體如下每臺後端伺服器可以提供自己的監控接口,分發伺服器可以自己編寫插件,該插件可以通過所述監控接口定期獲取每臺後端伺服器的負載情況。所述當前負載信息表示後端伺服器在每個獲取周期的實時負載情況,負載信息可包括應用程式運行數據,或者包括應用程式運行數據和性能數據,或者包括其他可反映應用程式運行情況的數據。其中,所述性能數據是指能夠反映後端伺服器軟硬體性能的數據,可包括內存使用信息,和/或,CPU使用信息等。所述應用程式運行數據是指能夠反映後端伺服器中應用程式的運行情況的數據,可包括實際在線人數,和/或正在下載的應用程式數,和/或正在下載的數據量,和/或實際連接數等。這些負載信息都是動態變量數據,都會隨著時間而實時改變。其中,在IM應用中,實際在線人數能夠很合理地衡量後端伺服器的實際負載情況,通過統計實際在線人數,可以剔除從統計開始到當前時刻所有統計出來的在線人數中, 當前時刻實際在線的人數,而不是從開始到現在的統計數據,因為在這個過程中有些客戶端可能已經下線。例如,從t時刻到tl時刻的一段時間內,總共有100個客戶端連接上後端伺服器,但是相繼有30人下線,因此在tl時刻的實際在線人數是70,而不是曾經與伺服器建立過連接的100人。在多媒體下載應用,如音樂、視頻、電影電視等網絡下載中,正在下載的應用程式數是指統計下載列表中當前正在下載的應用程式數,不包括已經下載完畢和下載列表中未開始下載的應用程式數,因此正在下載的應用程式數也能夠合理地衡量後端伺服器的實際負載情況。進一步的,在應用程式的下載過程中,每個應用程式下載的數據量多少也會影響後端伺服器的負載,因此也可以統計出每個正在下載的應用程式的下載數據量,然後累加, 就可以得到正在下載的所有應用程式的數據量,該數據量也能夠合理地衡量後端伺服器的實際負載情況。此外,在其他連接多個客戶端的應用中,通過統計實際連接數也可以反映出後端伺服器的實際負載情況。所述實際連接數是指與後端伺服器保持連接並進行交互的客戶端數,不包含曾經連接過伺服器但已經暫時或永久斷開連接的客戶端,也不包含任務隊列中等待與伺服器建立連接的客戶端。內存使用信息和CPU使用信息可從伺服器的性能方面衡量了後端伺服器的負載情況,伺服器處理的業務不同,所耗費的內存和CPU也是不同的,因此無論業務量的大小如何,通過伺服器的內存和/或CPU使用信息可以反映出一臺伺服器在當前的實際負載情況。 具體的,所述內存或CPU的使用信息可以表示為內存或CPU的使用率,或者表示為已經使用的內存或CPU大小等。此外,負載信息除以上列舉的三種之外,還可以包含磁碟的讀寫、網卡的讀寫等參數信息。步驟202,在每個獲取周期內,依據所述當前負載信息重新計算後端伺服器的權
即在每個獲取周期內,每次獲取到負載信息後,都會依據負載情況對每臺伺服器的權重進行計算。當然,如果一臺後端伺服器的負載情況沒有變化,為了節省計算,也可以直接使用最近一次的權重計算結果。在計算權重時,可採用下述的計算方法設定實際在線人數以Xl表示,其權值為a ;內存使用信息以x2表示,其權值為b ; CPU使用信息以X3表示,其權值為C ;按照以下公式計算得到一臺後端伺服器的總權重Y ;Y= I-(xl X a+x2 Xb+x3 X c) 其中,「 I-」表示權重高的伺服器優先分配。當然,上述計算方法僅是舉例說明,可以採用其他的權重計算,本申請對此不做限定。步驟203,依據每次計算的權重調整後端伺服器的分配,並選擇後端伺服器將客戶端的接入請求進行路由。在每個獲取周期內,與上一周期相比,如果後端伺服器的權重有變化,就需要重新調整伺服器的分配,因為每次的分配是依據權重而完成。例如,總共有A、B、C三臺後端伺服器,在上一獲取周期中,按照權重由高到低的排序是B、A、C,權重高的伺服器比權重低的伺服器處理更多的業務請求,因此伺服器B分配的業務請求較多,伺服器A其次,伺服器C最少。在下一獲取周期中,按照權重由高到低的排序變更為C、A、B,因此此時伺服器C分配的業務請求較多,伺服器A其次,伺服器B最少。具體的,步驟203可以包含以下兩個子步驟子步驟1,依據每次計算的權重調整後端伺服器的分配概率;按照權重高的伺服器比權重低的伺服器處理更多業務請求的原則,權重高的伺服器得到的分配機會較多,權重低得伺服器得到的分配機會相對較少。如果後端伺服器的權重有調整,就需要相應調整分配概率。例如,按照權重由高到低,伺服器A的權重為O. 5,伺服器B的權重為O. 3,伺服器 C的權重為O. 2,則相應的分配概率依次是50%、30%和20%。如果權重從高到低調整為伺服器B是O. 4、伺服器C是O. 3、伺服器A是O. 3,則相應的分配概率依次調整為40%、30%、 30%。子步驟2,按照所述分配概率隨機選擇後端伺服器將客戶端的接入請求進行路由。在負載均衡過程中,每次分配伺服器是依據上述的分配概率隨機進行,即每次隨機選擇一臺後端伺服器,但總體保持各伺服器的隨機分配概率。例如,在某一獲取周期內, 伺服器A、B、C的分配概率是50%、30%和20%,則總共分配10次請求,其中5次請求分配給伺服器A處理,3次請求分配給伺服器B處理,2次請求分配給伺服器C處理。在選定某臺後端伺服器後,可以將當前的客戶端的接入請求路由給所選定的這臺伺服器。綜上所述,由上述流程可以看出,上述的適用於各種應用服務的負載均衡方法能夠根據後端伺服器的負載情況,動態調整分發策略,動態地返回後端相對空閒的伺服器給客戶端接入。與傳統的應用服務的負載均衡方法相比,上述方法能夠在完成同樣功能的多個網絡設備之間實現業務量的合理分配,而不至於出現一臺設備過忙,其他設備未能充分發揮其作用的情況。此外,分發伺服器除了可以採用圖2所示的負載均衡方法外,也可以採用以下幾種負載均衡方法中的任意一種(I)輪詢法在一個任務隊列裡,隊列的每個成員(節點)都具有相同的地位,輪詢法簡單地在這組成員中順序輪轉選擇。在負載均衡環境中,分發伺服器將新的請求輪流發給任務隊列中的下一節點,如此連續、周而復始,每個集群的節點都在相等的地位下被輪流選擇。輪詢法的活動是可預知的,每個節點被選擇的機會是1/N,因此很容易計算出節點的負載分布。輪詢法典型的適用於集群中所有節點的處理能力和性能均相同的情況。(2)最少連接法在最少連接法中,分發伺服器紀錄目前所有的活躍連接,把下一個新的請求發給當前含有最少連接數的節點。這種方法比較適合後端業務相同,機器配置相同,並且每個連接負載基本類似的服務,比如IM業務。(3)加權輪詢調度法加權輪詢調度(Weighted Round-Robin Scheduling)方法用相應的權值表示節點的處理性能,根據權值的高低順序並按照輪詢的方式將任務請求分配到各節點。權值高的結點比權值低的結點處理更多的任務請求,相同權值的結點處理相同份額的請求。在整個業務處理過程中,這種加權輪詢調度法對節點處理性能的權值設置是固定的,不會隨著節點實際性能的變化而修改權值,但是圖2所示的方法可以根據節點的實際負載情況動態修改權值,動態進行請求的分配。基於以上內容,下面通過另一個實施例進行說明。在該實施例中,分發伺服器除可以採用圖2所示的負載均衡方法外,還具有動態添加、動態刪除與其連接的後端伺服器,以及根據後端伺服器的負載情況進行後端訪問控制等功能。下面分別詳細說明。分發伺服器採用路由表維護所有可分配的後端伺服器,所述路由表中記錄了所有可分配的後端伺服器的配置信息,所述配置信息包括伺服器的IP位址、埠配置等信息。 在每個獲取周期內,分發伺服器按照所述路由表獲取路由表中記錄的後端伺服器的負載情況,並動態地進行負載調整。基於所述路由表的維護,分發伺服器還具有以下特點I、動態刪除後端伺服器具體包含以下兩個子步驟子步驟1,定時獲取路由表中後端伺服器的運行狀態信息;子步驟2,依據所述運行狀態信息檢測相應的後端伺服器是否異常或失效,並將異常或失效的後端伺服器的配置信息從路由表中刪除。所述運行狀態信息可以檢測出後端伺服器是否與分發伺服器保持通信,通信狀態是否正常,等等。如果某臺後端伺服器由於各種原因而發生故障(即異常)或完全宕機(即失效),通過這種定期的檢測,就可以立即發現並自動從路由表中刪除,避免再將該後端伺服器分配給客戶端。上述輪詢法雖然也可以通過修改配置的方法刪除失效的後端伺服器,但是這種修
11改之後,擴散需要時間,比如後端的一臺伺服器停機,修改配置使其生效需要一定時間,這段時間可能會把這臺失效的伺服器繼續路由給用戶。但是分發伺服器採用的這種定期檢測、實時刪除的方法,可以動態地處理失效的機器。2、動態添加後端伺服器通過向所述路由表中添加後端伺服器的配置信息,可以動態添加可分配的後端伺服器。在後端現有的伺服器不能滿足處理需要的情況下,可以按照上述方式動態添加新的伺服器。這種動態添加的方式也可以立即生效,無需等待一定時間。3、後端訪問控制可以根據後端機器的實際在線人數、應用程式的下載情況、CPU、內存等負載信息, 動態計算並決定是否路由請求給後端伺服器,從而有效地保護後端的服務。這種對後端的訪問控制可採用以下兩種實現方式一種方式是預先配置後端伺服器的最大處理能力,所述最大處理能力表示為最大在線人數、和/或應用程式的最大下載個數、和/或應用程式的最大下載數據量、和/或最大內存使用信息、和/或最大CPU使用信息;在每個獲取周期內,依據獲取的當前負載信息和所配置的最大處理能力,檢測後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。這種方式下,分發伺服器每次獲取到後端伺服器的負載信息後,比較當前的實際在線人數是否超過最大在線人數,如果超過,則表示滿載需要進行控制保護,不再給該伺服器分配請求。和/或,比較當前正在下載的應用程式的個數是否超過最大下載個數,如果超過, 則需要控制保護。和/或,比較當前正在下載的應用程式的總下載量是否超過最大下載數據量,如果超過,則需要控制保護。和/或,比較當前的內存使用信息是否接近或超過最大內存使用信息,如4G的內存當已佔用3. 7G時表示滿載,需要控制保護。和/或,比較當前的CPU使用信息是否接近或超過最大CPU使用信息,如最大CPU 使用率是85 %,如果當前CPU使用率為83 %則表示滿載,需要控制保護。另一種方式是每個後端伺服器上預先配置了相應的最大處理能力,所述最大處理能力表示為最大在線人數、和/或應用程式的最大下載個數、和/或應用程式的最大下載數據量、和/或最大內存使用信息、和/或最大CPU使用信息;每個後端伺服器依據當前負載信息和所配置的最大處理能力,定時檢測是否滿載;分發伺服器定時獲取後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。所述第二種方式下,是否滿載的判斷由後端各臺伺服器完成,並將判斷結果反饋給分發伺服器,分發伺服器依據是否滿載的結果調整訪問控制策略。4、不局限後端服務的類型分發伺服器可以基於Erlang框架創建,Erlang是一種面向並發(Concurrency Oriented)、面向消息(Message Oriented)的函數式(Functional)程式語言。面向並發說明Erlang支持大規模的並發應用,可以在應用中處理成千上萬的並發,而不相互影響。面向消息,是為並發服務。在Erlang的世界裡,每個處理都是獨立的個體,他們之間的交互僅僅靠消息,因此不會有死鎖。基於Erlang框架特有的靈活性,可以通過編寫組件的形式進行擴展,後端可以是任意類型的服務,不局限服務的類型,只要提供負載查詢的相關接口,就可以使用該框架做負載均衡。因此,在分發伺服器定時獲取後端伺服器的當前負載信息之前,還包括以下步驟根據後端服務的類型,選擇配置相適應的與後端伺服器通信的交互協議;如果後端服務的類型調整,則重新配置相適應的與後端伺服器通信的交互協議。總之,通過動態配置分發(dispatch)伺服器與後端伺服器通信的交互協議,滿足不同類型的後端服務。需要說明的是,對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請並不受所描述的動作順序的限制,因為依據本申請,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作並不一定是本申請所必需的。基於上述方法實施例的說明,本申請還提供了相應的應用服務的負載均衡系統實施例。參照圖3所示,是本申請實施例所述一種應用服務的負載均衡系統的結構圖。所述負載均衡系統可設置在分發伺服器上實現應用服務的負載均衡,所述負載均衡系統可包含以下模塊負載查詢模塊10,用於不斷獲取後端伺服器的當前負載信息,所述當前負載信息包括後端伺服器的應用程式運行數據,或者包括後端伺服器的應用程式運行數據和性能數據;其中,所述應用程式運行數據是後端伺服器的應用程式的運行數據,所述後端伺服器為終端應用程式提供網絡服務,所述終端應用程式與後端伺服器的應用程式對應同一應用服務;權重計算模塊20,用於在每個獲取周期內,依據所述當前負載信息重新計算後端伺服器的權重;負載調整模塊30,用於依據每次計算的權重調整後端伺服器的分配,並選擇後端伺服器將客戶端的接入請求進行路由。其中,所述性能數據可包括內存使用信息,和/或,CPU使用信息;所述應用程式運行數據包括實際在線人數,和/或正在下載的應用程式數,和/或正在下載的數據量,和/ 或實際連接數。其中,各後端伺服器提供監控接口,負載查詢模塊10可通過所述監控接口定時獲取後端伺服器的當前負載信息。所述負載調整模塊30可依據每次計算的權重調整後端伺服器的分配概率;然後, 按照所述分配概率隨機選擇後端伺服器將客戶端的接入請求進行路由。上述應用服務的負載均衡系統能夠在完成同樣功能的多個網絡設備之間實現業務量的合理分配,而不至於出現一臺設備過忙,其他設備未能充分發揮其作用的情況。
13
基於圖3的實施例,在另一系統實施例中,所述負載均衡系統還可以包括其他模塊,具體如下可選地,所述負載均衡系統還可以包括以下模塊負載維護模塊,用於通過路由表維護所有可分配的後端伺服器,所述路由表中記錄了所有可分配的後端伺服器的配置信息。可選地,所述負載均衡系統還可以包括以下模塊動態刪除模塊,用於定時獲取路由表中後端伺服器的運行狀態信息;依據所述運行狀態信息檢測相應的後端伺服器是否異常或失效,並將異常或失效的後端伺服器的配置信息從路由表中刪除。可選地,所述負載均衡系統還可以包括以下模塊動態添加模塊,用於通過向所述路由表中添加後端伺服器的配置信息,動態添加可分配的後端伺服器。可選地,所述負載均衡系統還可以包括以下模塊第一訪問控制模塊,用於預先配置後端伺服器的最大處理能力,所述最大處理能力表示為最大在線人數、和/或應用程式的最大下載個數、和/或應用程式的最大下載數據量、和/或最大內存使用信息、和/或最大CPU使用信息;在每個獲取周期內,依據獲取的當前負載信息和所配置的最大處理能力,檢測後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。可選地,所述負載均衡系統還可以包括以下模塊第二訪問控制模塊,用於每個後端伺服器上預先配置相應的最大處理能力,所述最大處理能力表示為最大在線人數、和/或應用程式的最大下載個數、和/或應用程式的最大下載數據量、和/或最大內存使用信息、和/或最大CPU使用信息;每個後端伺服器依據當前負載信息和所配置的最大處理能力,定時檢測是否滿載;定時獲取後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。可選地,所述負載均衡系統還可以包括以下模塊通信配置模塊,用於根據後端服務的類型,選擇配置相適應的與後端伺服器通信的交互協議;如果後端服務的類型調整,則重新配置相適應的與後端伺服器通信的交互協議。對於上述負載均衡系統實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,上文中的「和/或」表示本文既包含了 「和」的關係,也包含了 「或」的關係, 其中如果方案A與方案B是「和」的關係,則表示某實施例中可以同時包括方案A和方案 B ;如果方案A與方案B是「或」的關係,則表示某實施例中可以單獨包括方案A,或者單獨包括方案B。
以上對本申請所提供的一種應用服務的負載均衡方法及系統,進行了詳細介紹, 本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請的方法及其核心思想;同時,對於本領域的一般技術人員,依據本申請的思想,在具體實施方式
及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
權利要求
1.一種應用服務的負載均衡方法,其特徵在於,包括不斷獲取後端伺服器的當前負載信息,所述當前負載信息包括後端伺服器的應用程式運行數據,或者包括後端伺服器的應用程式運行數據和性能數據;其中,所述應用程式運行數據是後端伺服器的應用程式的運行數據,所述後端伺服器為終端應用程式提供網絡服務,所述終端應用程式與後端伺服器的應用程式對應同一應用服務;在每個獲取周期內,依據所述當前負載信息重新計算後端伺服器的權重;依據每次計算的權重調整後端伺服器的分配,並選擇後端伺服器將客戶端的接入請求進行路由。
2.根據權利要求I所述的方法,其特徵在於所述性能數據包括內存使用信息,和/或,CPU使用信息;所述應用程式運行數據包括實際在線人數,和/或正在下載的應用程式數,和/或正在下載的數據量,和/或實際連接數。
3.根據權利要求I所述的方法,其特徵在於,還包括通過路由表維護所有可分配的後端伺服器,所述路由表中記錄了所有可分配的後端伺服器的配置信息。
4.根據權利要求3所述的方法,其特徵在於,還包括定時獲取路由表中後端伺服器的運行狀態信息;依據所述運行狀態信息檢測相應的後端伺服器是否異常或失效,並將異常或失效的後端伺服器的配置信息從路由表中刪除。
5.根據權利要求3所述的方法,其特徵在於,還包括通過向所述路由表中添加後端伺服器的配置信息,動態添加可分配的後端伺服器。
6.根據權利要求I至3任一所述的方法,其特徵在於,還包括預先配置後端伺服器的最大處理能力,所述最大處理能力表示為最大在線人數、和/ 或應用程式的最大下載個數、和/或應用程式的最大下載數據量、和/或最大內存使用信息、和/或最大CPU使用信息;在每個獲取周期內,依據獲取的當前負載信息和所配置的最大處理能力,檢測後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。
7.根據權利要求I至3任一所述的方法,其特徵在於,還包括每個後端伺服器上預先配置了相應的最大處理能力,所述最大處理能力表示為最大在線人數、和/或應用程式的最大下載個數、和/或應用程式的最大下載數據量、和/或最大內存使用信息、和/或最大CPU使用信息;每個後端伺服器依據當前負載信息和所配置的最大處理能力,定時檢測是否滿載;定時獲取後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。
8.根據權利要求I至3任一所述的方法,其特徵在於,所述定時獲取後端伺服器的當前負載信息之前,還包括根據後端服務的類型,選擇配置相適應的與後端伺服器通信的交互協議;如果後端服務的類型調整,則重新配置相適應的與後端伺服器通信的交互協議。
9.根據權利要求I所述的方法,其特徵在於,所述定時獲取後端伺服器的當前負載信息,包括後端伺服器提供監控接口,通過所述監控接口定時獲取後端伺服器的當前負載信息。
10.根據權利要求I所述的方法,其特徵在於,所述依據每次計算的權重調整後端伺服器的分配,並選擇後端伺服器將客戶端的接入請求進行路由,包括依據每次計算的權重調整後端伺服器的分配概率;按照所述分配概率隨機選擇後端伺服器將客戶端的接入請求進行路由。
11.一種應用服務的負載均衡系統,其特徵在於,包括負載查詢模塊,用於不斷獲取後端伺服器的當前負載信息,所述當前負載信息包括後端伺服器的應用程式運行數據,或者包括後端伺服器的應用程式運行數據和性能數據;其中,所述應用程式運行數據是後端伺服器的應用程式的運行數據,所述後端伺服器為終端應用程式提供網絡服務,所述終端應用程式與後端伺服器的應用程式對應同一應用服務;權重計算模塊,用於在每個獲取周期內,依據所述當前負載信息重新計算後端伺服器的權重;負載調整模塊,用於依據每次計算的權重調整後端伺服器的分配,並選擇後端伺服器將客戶端的接入請求進行路由。
12.根據權利要求11所述的系統,其特徵在於所述性能數據包括內存使用信息,和/或,CPU使用信息;所述應用程式運行數據包括實際在線人數,和/或正在下載的應用程式數,和/或正在下載的數據量,和/或實際連接數。
13.根據權利要求11所述的系統,其特徵在於,還包括負載維護模塊,用於通過路由表維護所有可分配的後端伺服器,所述路由表中記錄了所有可分配的後端伺服器的配置信息。
14.根據權利要求13所述的系統,其特徵在於,還包括動態刪除模塊,用於定時獲取路由表中後端伺服器的運行狀態信息;依據所述運行狀態信息檢測相應的後端伺服器是否異常或失效,並將異常或失效的後端伺服器的配置信息從路由表中刪除。
15.根據權利要求13所述的系統,其特徵在於,還包括動態添加模塊,用於通過向所述路由表中添加後端伺服器的配置信息,動態添加可分配的後端伺服器。
16.根據權利要求11至13任一所述的系統,其特徵在於,還包括第一訪問控制模塊,用於預先配置後端伺服器的最大處理能力,所述最大處理能力表示為最大在線人數、和/或應用程式的最大下載個數、和/或應用程式的最大下載數據量、 和/或最大內存使用信息、和/或最大CPU使用信息;在每個獲取周期內,依據獲取的當前負載信息和所配置的最大處理能力,檢測後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。
17.根據權利要求11至13任一所述的系統,其特徵在於,還包括第二訪問控制模塊,用於每個後端伺服器上預先配置相應的最大處理能力,所述最大處理能力表示為最大在線人數、和/或應用程式的最大下載個數、和/或應用程式的最大下載數據量、和/或最大內存使用信息、和/或最大CPU使用信息;每個後端伺服器依據當前負載信息和所配置的最大處理能力,定時檢測是否滿載;定時獲取後端伺服器是否滿載,並對滿載的後端伺服器進行訪問控制。
18.根據權利要求11至13任一所述的系統,其特徵在於,還包括通信配置模塊,用於根據後端服務的類型,選擇配置相適應的與後端伺服器通信的交互協議;如果後端服務的類型調整,則重新配置相適應的與後端伺服器通信的交互協議。
全文摘要
本申請提供了一種應用服務的負載均衡方法及系統,以解決目前網絡服務中的負載均衡問題。所述方法包括不斷獲取後端伺服器的當前負載信息,所述當前負載信息包括後端伺服器的應用程式運行數據,或者包括後端伺服器的應用程式運行數據和性能數據;在每個獲取周期內,依據所述當前負載信息重新計算後端伺服器的權重;依據每次計算的權重調整後端伺服器的分配,並選擇後端伺服器將客戶端的接入請求進行路由。與傳統的應用服務的負載均衡方法相比,本申請能夠在完成同樣功能的多個網絡設備之間實現業務量的合理分配,而不至於出現一臺設備過忙,其他設備未能充分發揮其作用的情況。
文檔編號H04L29/08GK102611735SQ20111043309
公開日2012年7月25日 申請日期2011年12月21日 優先權日2011年12月21日
發明者李強, 黃蔚 申請人:奇智軟體(北京)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀