戶請求是否超過預估處理量以及判斷分配客戶請求給所有選擇的業(yè)務服務器后,業(yè)務服務器的當前處理量是否都超過預設值。
[0023]選擇單元1021根據(jù)預設規(guī)則選擇業(yè)務服務器201處理客戶請求中,預設規(guī)則還包括當判斷單元1023判斷分配給所有選擇的業(yè)務服務器的客戶請求超過預估處理量時以及當判斷單元1023判斷分配客戶請求給所有選擇的業(yè)務服務器后,業(yè)務服務器的當前處理量都超過預設值時,選擇單元1021再在未被選擇的業(yè)務服務器中選擇當前處理量最少且未超過預設值的業(yè)務服務器;當判斷單元1023判斷分配給所有選擇的業(yè)務服務器的客戶請求未超過預估處理量時,且判斷單元1023判斷分配客戶請求給所有選擇的業(yè)務服務器后,業(yè)務服務器的當前處理量未都超過預設值時,則選擇單元1021選擇其中未超過預設值的業(yè)務服務器進行循環(huán)分配客戶請求。
[0024]此外,選擇單元1021還用于當在未被選擇的業(yè)務服務器中選擇當前處理量最少的業(yè)務服務器后,再在所有曾被選擇的業(yè)務服務器中選擇當前處理量未超過預設值的業(yè)務服務器,分配單元1024再分配客戶請求給選擇的業(yè)務服務器。
[0025]判斷單元1023還用于首先判斷是否存在當前處理量未超過預設值的業(yè)務服務器以及在未被選擇的業(yè)務服務中判斷是否存在當前處理量未超于預設值的業(yè)務服務器,若不存在當前處理量未超過預設值的業(yè)務服務器的當前處理量超過了預設值,則建議增加業(yè)務服務器。
[0026]定時更新模塊103用于定時獲取當前業(yè)務服務器的客戶請求處理量。
[0027]數(shù)據(jù)庫模塊104用于存儲所有應用程序運行時需要讀取的數(shù)據(jù),如用戶登錄賬號、聊天記錄、文件傳輸信息。
[0028]請參考圖2,其為一種服務器的負載均衡的方法的流程圖。該服務器的負載均衡的方法包括如下步驟。
[0029]步驟S201,網關服務器端的接收至少一個客戶請求。
[0030]步驟S202,網管服務器判斷是否存在當前處理量未超過預設值的業(yè)務服務器,若存在當前處理量未超過預設值的業(yè)務服務器,則進行步驟S203 ;若不存在當前處理量未超過預設值的業(yè)務服務器,則進行步驟S211。具體地,因為當業(yè)務服務器的處理量都超過預設值時,此時再分配請求給業(yè)務服務器會增加該請求排隊等候處理的時間,導致業(yè)務服務器處理請求的效率降低。
[0031]步驟S203,網管服務器選擇當前處理量最少且當前處理量未超過預設量的業(yè)務服務器。具體地,本實施方式中首先選擇的當前處理量最少的業(yè)務服務器為處理量O1的業(yè)務服務器。
[0032]步驟S204,根據(jù)預設算法計算出分配給所有選擇的業(yè)務服務器的預估處理量。具體地,首先計算分配給處理量O1的業(yè)務服務器的預估處理量C 1= (O 2— O J +D。
[0033]步驟S205,網管服務器依次分配一個客戶請求給所有選擇的業(yè)務服務器。具體地,按照將客戶請求一個一個的分配給業(yè)務服務器的分配原則進行分配給所有選擇的業(yè)務服務器,且遵循優(yōu)先分配客戶請求給當前處理量最少的業(yè)務服務器的規(guī)則。此外,也可知當前業(yè)務處理量最低的業(yè)務服務器是動態(tài)的。例如,第一次進行分配時,此時選擇的處理量為O1的業(yè)務服務器。
[0034]步驟S206,網管服務器判斷所接收的客戶請求是否分配完畢。若處理完畢所接收的客戶請求,則進行步驟S214;若沒處理完所接收的客戶請求,則進行步驟S207。具體地,當所接收的客戶請求均已分配完畢,則分配結束,若所接收的客戶請求還未分配完畢,則需要繼續(xù)進行分配。
[0035]步驟S207,判斷分配給所有選擇的業(yè)務服務器的客戶請求量是否超過上述步驟S204計算預估處理量,若分配給所有選擇的業(yè)務服務器的客戶請求量超過上述步驟S204計算的預估處理量,則進行步驟S209 ;若所有選擇的業(yè)務服務器的客戶請求量未超過步驟S204計算的預估處理量,則進行步驟S208。具體地,當分配給所有選擇的業(yè)務服務器的客戶請求量超過步驟S204計算的預估處理量,則需要在未被選擇的業(yè)務服務器中選擇當前處理量最少的業(yè)務服務器,并協(xié)同之前選擇的業(yè)務服務器再次接收分配的客戶請求。例如,當一個一個分配客戶請求給處理量0ι的業(yè)務服務器客戶請求達到C i = (O 2 — O D + D時,此時需要選擇處理量O2的業(yè)務服務器,并將后續(xù)的客戶請求一個一個分配給處理量O1的業(yè)務服務器和處理量02的業(yè)務服務器;若分配給所有選擇的業(yè)務服務器的客戶請求量未超過步驟S204計算的預估處理量,則進行步驟S208。
[0036]步驟S208,網管服務器判斷分配客戶請求給所有選擇的業(yè)務服務器后,業(yè)務服務器的當前處理量是否都已達到預設值。若分配客戶請求后,所有選擇的業(yè)務服務器當前處理量都已達到預設值,則繼續(xù)步驟S209 ;若分配客戶請求后,所有選擇的業(yè)務服務器客戶請求未都達到預設值,則進行步驟S210。具體地,當一次分配一個客戶請求給所有選擇的業(yè)務服務器后,所選擇的業(yè)務服務器的處理量有可能從小于預設值變?yōu)槌^預設值,此時為了提高業(yè)務服務器處理客戶請求的效率,減少請求排隊等待處理的時間,當判斷出所有選擇的業(yè)務服務器的處理量已達到預設值時,則在未被選擇的業(yè)務服務器中選擇下次可接收客戶請求的業(yè)務服務器。
[0037]步驟S209,判斷未被選擇的業(yè)務服務器中是否存在當前處理量未超過預設值的業(yè)務服務器,若未被選擇的業(yè)務服務器中存在當前處理量未超過預設值的業(yè)務服務器,則進行步驟S212 ;若未被選擇的業(yè)務服務器中不存在當前處理量未超過預設值的業(yè)務服務器,則進行步驟S211。具體地,根據(jù)上述原理,當分配給之前選擇的業(yè)務服務器的客戶請求已經超過該業(yè)務服務器的預估處理量或者當分配給所選擇的業(yè)務服務器的客戶請求已達到預設值時,此時均要在未被選擇的業(yè)務服務器中選擇下次接收客戶請求的業(yè)務服務器。但是選擇之前,為了提高業(yè)務服務器的處理效率,減少請求排隊等候的時間,此時需要判斷未被選擇的業(yè)務服務器中是否存在當前處理量未超過預設值的業(yè)務服務器,若未被選擇的業(yè)務服務器中不存在當前處理量未超過預設值的業(yè)務服務器,則建議增加業(yè)務服務器。
[0038]步驟S210,根據(jù)步驟S208中所判斷的分配客戶請求給所有選擇的業(yè)務服務器后,業(yè)務服務器的當前處理量并未都超過預設值的結果,則選擇其中未超于預設值的業(yè)務服務器。
[0039]步驟S211,根據(jù)步驟S209中所判斷的未被選擇的服務器中不存在當前處理量未超過預設值的業(yè)務服務器的結果以及步驟S202中不存在當前處理量未超過預設值的業(yè)務服務器,建議增加業(yè)務服務器。
[0040]步驟S212,根據(jù)步驟S209中所判斷的未被選擇的服務器中存在當前處理量未超過預設值的業(yè)務服務器的結果,則在未被選擇的業(yè)務服務器中選擇當前處理量最少的業(yè)務服務器且當前處理量未超過預設量的業(yè)務服務器,進行步驟S213。
[0041 ] 步驟S213,在所有曾被選擇的業(yè)務服務器中選擇未超于預設值的業(yè)務服務器后在返回步驟S204,重新計算此次所有選擇的業(yè)務服務器的預估處理量。具體地,例如當處理量為(^的對應的業(yè)務服務器接收的客戶請求已經達到預估處理量C 者當處理量為O i的業(yè)務服務器接收客戶請求后其處理量超過與預設值,則此時選擇處理量未超過預設值的02的業(yè)務服務器。然后返回步驟S204計算此次選擇的處理量O2的業(yè)務服務器的預估處理量C 2=(O3- O2) +D,然后進行分配客戶請求給所有選擇的業(yè)務服務器,即此時為處理量O1的業(yè)務服務器和處理量O2業(yè)務服務器。依次類推,當有若干個業(yè)務服務器時,且當在剩余業(yè)務服務器中選擇處理量未超過預設的業(yè)務服務器On 時,返回步驟S204計算所選擇的處理量為On _ i的業(yè)務服務器的預估處理量Cf1=(On-Ot1)^D,然后在進行對處理量為O1、
02、…、Onl的業(yè)務服務器進行分配客戶請求。
[0042]步驟S214,發(fā)送