一種服務器負載均衡方法
【專利摘要】本發明實施例涉及一種服務器負載均衡方法,所述方法包括:控制服務器接收應用服務器發送的數據處理請求;所述控制服務器判斷所述數據處理請求的類型;當所述數據處理請求為讀取數據請求時,所述控制服務器獲取每臺數據庫服務器的負載信息,根據所述負載信息得到每臺數據庫服務器的負載值;所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理。本發明實施例提供的服務器負載均衡方法,能夠根據服務器負載值彈性化分配數據處理任務,從而實現服務器負載均衡。
【專利說明】
一種服務器負載均衡方法
技術領域
[0001]本發明涉及網絡技術領域,尤其涉及一種服務器負載均衡方法。
【背景技術】
[0002]隨著通信技術和網絡技術的發展,網絡訪問量和數據流量快速增長,網絡各個核心部分的處理性能和計算強度也相應增大,單一服務器明顯已經無法滿足數據處理的需求,因此需要多個服務器進行分擔。
[0003]現有技術中,在利用多個服務器進行數據處理時,存在服務器負載不均衡的問題,出現部分服務器數據處理量過大,導致處理速度慢,處理時間超出預期,而其他服務器處理數據量低于預期或者閑置,從而造成資源浪費。因此,需要一種合理有效地分配資源,實現服務器負載均衡的方法。
【發明內容】
[0004]本發明的目的是提供一種服務器負載均衡方法,以解決現有技術中服務器負載不均衡的問題。
[0005]為實現上述目的,本發明提供了一種服務器負載均衡方法,所述方法包括:
[0006]控制服務器接收應用服務器發送的數據處理請求;
[0007]所述控制服務器判斷所述數據處理請求的類型;
[0008]當所述數據處理請求為讀取數據請求時,所述控制服務器獲取每臺數據庫服務器的負載信息,根據所述負載信息得到每臺數據庫服務器的負載值;
[0009]所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理。
[0010]進一步的,所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理具體包括:
[0011]當所述當前總負載值小于所述理論總負載值時,將所述數據處理請求分配到理論負載值與當前負載值差別最大的第一數據庫服務器。
[0012]進一步的,所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理具體包括:
[0013]當所述當前總負載值小于所述理論總負載值時,將所述數據處理請求分配到當前負載值最小的第一數據庫服務器。
[0014]進一步的,所述將所述數據處理請求分配到當前負載值最小的第一數據庫服務器具體包括:
[0015]所述控制服務器利用當前負載值最小且處于正常工作狀態的數據庫服務器進行數據讀取。
[0016]進一步的,所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理具體包括:
[0017]當所述當前總負載值小于所述理論總負載值時,將所述數據處理請求分配到任一當前負載值不大于理論負載值的第一數據庫服務器。
[0018]進一步的,所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理具體包括:
[0019]當所述當前總負載值等于所述理論總負載值時,將所述數據處理請求分配到新投入的第一數據庫服務器進行處理。
[0020]進一步的,所述方法還包括:所述數據庫服務器向所述控制服務器發送狀態信息,當接收到當前狀態信息為故障狀態或超過閾值時間沒有收到當前狀態信息時,將所述數據庫服務器的所有任務切換到該數據庫服務器對應的備用數據庫服務器或者其他數據庫服務器。
[0021]進一步的,當接收到當前狀態信息為故障狀態或超過閾值時間沒有收到當前狀態信息時,將所述數據庫服務器的所有任務切換到該數據庫服務器對應的備用數據庫服務器或者其他數據庫服務器具體包括:
[0022]當前狀態信息為故障狀態或超過閾值時間沒有收到當前狀態信息時,將所述數據庫服務器的所有任務統一切換到所述數據庫服務器對應的備用數據庫服務器;或者
[0023]將所述數據庫服務器的所有任務根據負載信息切換到其他數據庫服務器。
[0024]本發明實施例提供的服務器負載均衡方法,能夠根據服務器負載值彈性化分配數據處理任務,從而實現服務器負載均衡。
【附圖說明】
[0025]圖1為本發明實施例提供的服務器負載均衡方法的系統架構圖;
[0026]圖2為本發明實施例提供的服務器負載均衡方法流程圖。
【具體實施方式】
[0027]下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。
[0028]圖1為本發明實施例提供的服務器負載均衡方法的系統架構圖。如圖1所示,包括多個應用服務器11、多個控制服務器12和多個數據庫服務器13。應用服務器11向控制服務器12發送數據處理請求,控制服務器12判斷數據處理請求的類型,當數據處理請求為讀取數據請求時,控制服務器12獲取每臺數據庫服務器13的負載信息,根據負載信息得到每臺數據庫服務器13的負載值。控制服務器13根據每臺數據庫服務器的當前負載值和當前總負載值,將數據處理請求分配到數據庫服務器13進行處理。當數據處理請求為寫入數據請求時,應用服務器11將待寫入數據緩存在控制服務器12,控制服務器12將待寫入數據寫入多個數據庫服務器13。另外,每臺數據庫服務器13都具有對應的備用數據庫服務器(圖中未示出),當數據庫服務器13出現問題不能正常工作時,啟動對應的備用數據庫服務器執行數據處理任務。此前,需要對數據庫做鏡像,然后周期性的對備用數據庫服務器進行快照,以保證備用數據庫服務器和數據庫服務器13數據同步。
[0029]圖2為本發明實施例提供的服務器負載均衡方法示意圖。如圖2所示,所述方法包括:
[0030]步驟201,控制服務器接收應用服務器發送的數據處理請求。
[0031]具體地,控制服務器作為應用服務器和數據庫服務器的中間層,接收應用服務器發送的數據處理請求,截斷了應用服務器和數據庫服務器的直接連接,使控制服務器可以具體控制訪問某個數據庫。控制服務器將數據庫放到了內網之中,更好地保護了數據庫的安全性。
[0032]另外,控制服務器的設置便于數據庫管理員對數據庫進行管理,而且由于控制服務器承接了所有數據庫的連接,需要設置多個控制服務器,避免一個控制服務器出現問題導致系統癱瘓。
[0033]步驟202,所述控制服務器判斷所述數據處理請求的類型。
[0034]具體地,數據處理請求包括讀取數據請求和寫入數據請求,控制服務器首先需要做出判斷后再進行后續處理。
[0035]步驟203,當所述數據處理請求為讀取數據請求時,所述控制服務器獲取每臺數據庫服務器的負載信息,根據所述負載信息得到每臺數據庫服務器的負載值。
[0036]其中,負載信息包括服務器的CPU利用率、內存利用率和網絡帶寬占用率等,分別將負載信息中的各項賦予權重,并進行加權處理,得到數據庫服務器的負載值。
[0037]另外,當數據處理請求為寫入數據請求時,應用服務器將待寫入數據緩存在控制服務器,控制服務器將待寫入數據寫入多個數據庫服務器。
[0038]步驟204,所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理。
[0039]具體地,當當前總負載值小于理論總負載值時,分為以下三種處理辦法:
[0040]第一種,將數據處理請求分配到理論負載值與當前負載值差別最大的第一數據庫服務器。
[0041]理論負載值與當前負載值差別最大,說明該數據庫服務器和其他數據庫服務器相比存在更多的空閑空間可以進行數據處理。
[0042]其中,理論負載值為每臺數據庫服務器的最大負載值。理論總負載值為每臺數據庫服務器的最大負載值之和。
[0043]第二種,將數據處理請求分配到當前負載值最小的第一數據庫服務器。
[0044]具體地,控制服務器利用當前負載值最小且處于正常工作狀態的數據庫服務器進行數據讀取。
[0045]此處需要說明的是,如果數據庫服務器出現故障,則也有可能出現當前負載值最小的情況,因此,控制服務器需要用當前負載值最小且處于正常工作狀態的數據庫服務器進行數據讀取。
[0046]第三種,將數據處理請求分配到任一當前負載值不大于理論負載值的第一數據庫服務器。
[0047]只要當前負載值不大于理論負載值,則該數據庫服務器就可以繼續增加數據處理任務,因此,可以將數據處理請求分配到任意一個當前負載值不大于理論負載值的數據庫服務器。
[0048]當當前總負載值等于理論總負載值時,當前所有數據庫服務器均無閑置,則需要新投入數據庫服務器,將數據處理請求分配到新投入的第一數據庫服務器進行處理。
[0049]可選地,本申請技術方案還包括:數據庫服務器向控制服務器發送狀態信息,當接收到當前狀態信息為故障狀態或超過閾值時間沒有收到當前狀態信息時,將數據庫服務器的所有任務切換到該數據庫服務器對應的備用數據庫服務器或者其他數據庫服務器。
[0050]具體地,當前狀態信息為故障狀態或超過閾值時間沒有收到當前狀態信息時,將數據庫服務器的所有任務統一切換到數據庫服務器對應的備用數據庫服務器;或者將數據庫服務器的所有任務根據負載信息切換到其他數據庫服務器。
[0051]本發明實施例提供的服務器負載均衡方法,能夠根據服務器負載值彈性化分配數據處理任務,從而實現服務器負載均衡。
[0052]專業人員應該還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
[0053]結合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。
[0054]以上所述的【具體實施方式】,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的【具體實施方式】而已,并不用于限定本發明的保護范圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【主權項】
1.一種服務器負載均衡方法,其特征在于,所述方法包括: 控制服務器接收應用服務器發送的數據處理請求; 所述控制服務器判斷所述數據處理請求的類型; 當所述數據處理請求為讀取數據請求時,所述控制服務器獲取每臺數據庫服務器的負載信息,根據所述負載信息得到每臺數據庫服務器的負載值; 所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理。2.根據權利要求1所述的服務器負載均衡方法,其特征在于,所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理具體包括: 當所述當前總負載值小于所述理論總負載值時,將所述數據處理請求分配到理論負載值與當前負載值差別最大的第一數據庫服務器。3.根據權利要求1所述的服務器負載均衡方法,其特征在于,所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理具體包括: 當所述當前總負載值小于所述理論總負載值時,將所述數據處理請求分配到當前負載值最小的第一數據庫服務器。4.根據權利要求3所述的服務器負載均衡方法,其特征在于,所述將所述數據處理請求分配到當前負載值最小的第一數據庫服務器具體包括: 所述控制服務器利用當前負載值最小且處于正常工作狀態的數據庫服務器進行數據讀取。5.根據權利要求1所述的服務器負載均衡方法,其特征在于,所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理具體包括: 當所述當前總負載值小于所述理論總負載值時,將所述數據處理請求分配到任一當前負載值不大于理論負載值的第一數據庫服務器。6.根據權利要求1所述的服務器負載均衡方法,其特征在于,所述控制服務器根據所述每臺數據庫服務器的當前負載值和當前總負載值,將所述數據處理請求分配到第一數據庫服務器進行處理具體包括: 當所述當前總負載值等于所述理論總負載值時,將所述數據處理請求分配到新投入的第一數據庫服務器進行處理。7.根據權利要求1所述的服務器負載均衡方法,其特征在于,所述方法還包括: 所述數據庫服務器向所述控制服務器發送狀態信息,當接收到當前狀態信息為故障狀態或超過閾值時間沒有收到當前狀態信息時,將所述數據庫服務器的所有任務切換到該數據庫服務器對應的備用數據庫服務器或者其他數據庫服務器。8.根據權利要求7所述的服務器負載均衡方法,其特征在于,當接收到當前狀態信息為故障狀態或超過閾值時間沒有收到當前狀態信息時,將所述數據庫服務器的所有任務切換到該數據庫服務器對應的備用數據庫服務器或者其他數據庫服務器具體包括: 當前狀態信息為故障狀態或超過閾值時間沒有收到當前狀態信息時,將所述數據庫服務器的所有任務統一切換到所述數據庫服務器對應的備用數據庫服務器;或者將所述數據庫服務器的所有任務根據負載信息切換到其他數據庫服務器。
【文檔編號】H04L29/08GK105915644SQ201610440518
【公開日】2016年8月31日
【申請日】2016年6月17日
【發明人】曾向群
【申請人】北京漢唐自遠技術股份有限公司