本發(fā)明涉及服務器技術領域,尤其涉及一種負載均衡方法、裝置、負載均衡器及存儲介質(zhì)。
背景技術:
為了加強網(wǎng)絡數(shù)據(jù)處理能力及提高網(wǎng)絡的靈活性和可用性,服務方通常會配置多臺服務器同時提供服務,并且利用負載均衡器將來自客戶端的請求轉(zhuǎn)發(fā)給合適的服務器,提高服務器工作效率,減輕服務器壓力,提高處理響應速度。目前,現(xiàn)有的負載均衡機制主要是通過負載均衡器定時監(jiān)控服務器,以輪詢的方式查看服務器是否可提供服務。當客戶端發(fā)送請求到負載均衡器時,再利用預先設定的分配方式將客戶端的請求發(fā)送給對應的服務器。但是,對于客戶端需要長時間建立連結或是客戶端可能耗用掉服務端比較龐大資源的請求時,現(xiàn)有的負載均衡機制并不能很好的滿足客戶端的需求,可能會導致服務響應速度變慢等問題。
技術實現(xiàn)要素:
本發(fā)明旨在至少在一定程度上解決相關技術中的技術問題之一。
為此,本發(fā)明的一個目的在于提出一種負載均衡方法,根據(jù)接收到的服務器主動上報狀態(tài)信息及其對應的第一時間,客戶端發(fā)起的請求及其對應的第二時間,確定出執(zhí)行該請求的服務器,能夠有效地根據(jù)服務器的狀態(tài)信息動態(tài)分配最佳的執(zhí)行請求的服務器,更加靈活主動,提高服務響應速度。
本發(fā)明的第二個目的在于提出一種負載均衡裝置。
本發(fā)明的第三個目的在于提出一種負載均衡器。
本發(fā)明的第四個目的在于提出一種存儲介質(zhì)。
本發(fā)明的第五個目的在于提出一種應用程序。
為了實現(xiàn)上述目的,本發(fā)明第一方面實施例提出了一種負載均衡方法,包括:接收服務器主動上報的狀態(tài)信息,同時記錄接收時間;接收客戶端發(fā)起的請求;根據(jù)所述狀態(tài)信息和所述接收時間確定執(zhí)行所述請求的服務器。
可選的,所述狀態(tài)信息用于描述服務器資源占用情況,包括cpu占用率、服務當前在線人數(shù)、當前使用帶寬、磁盤可用容量。
可選的,方法還包括:接收服務器主動上報的狀態(tài)信息時,保存所述狀態(tài)信息。
可選的,根據(jù)所述狀態(tài)信息、所述第一時間和所述第二時間確定執(zhí)行所述請求的服務器,包括:根據(jù)所述狀態(tài)信息、所述第一時間和所述第二時間過濾不符合預設條件的服務器;根據(jù)所述狀態(tài)信息從過濾后的服務器中計算出最優(yōu)服務器。
可選的,根據(jù)所述狀態(tài)信息、所述第一時間和所述第二時間過濾不符合預設條件的服務器,包括:計算所述第一時間與所述第二時間之差,如果兩者差值超過預設時長,則過濾對應的服務器;當磁盤可用容量低于預設容量時,過濾對應的服務器。
可選的,根據(jù)所述狀態(tài)信息從過濾后的服務器中計算出最優(yōu)服務器,包括:根據(jù)所述狀態(tài)信息計算服務器的承載能力,所述承載能力包括cpu空閑率、可承載最大人數(shù)、最大使用帶寬;選擇所述承載能力最大的服務器作為執(zhí)行所述請求的服務器。
本發(fā)明實施例的負載均衡方法,根據(jù)接收到的服務器主動上報狀態(tài)信息及其對應的第一時間,客戶端發(fā)起的請求及其對應的第二時間,確定出執(zhí)行該請求的服務器,能夠有效地根據(jù)服務器的狀態(tài)信息動態(tài)分配最佳的執(zhí)行請求的服務器,更加靈活主動,提高服務響應速度。
本發(fā)明第二方面實施例提出了一種負載均衡裝置,包括:接收模塊,用于接收服務器主動上報的狀態(tài)信息,同時記錄接收時間;接受請求模塊,用于接收客戶端發(fā)起的請求;確定模塊,用于根據(jù)所述狀態(tài)信息和所述接收時間確定執(zhí)行所述請求的服務器。
可選的,所述狀態(tài)信息用于描述服務器資源占用情況,包括cpu占用率、服務當前在線人數(shù)、當前使用帶寬、磁盤可用容量。
可選的,負載均衡裝置還包括:保存模塊,用于接收服務器主動上報的狀態(tài)信息時,保存所述狀態(tài)信息。
可選的,所述確定模塊,用于:根據(jù)所述狀態(tài)信息、所述第一時間和所述第二時間過濾不符合預設條件的服務器;根據(jù)所述狀態(tài)信息從過濾后的服務器中計算出最優(yōu)服務器。
可選的,所述確定模塊,用于:計算所述第一時間與所述第二時間之差,如果兩者差值超過預設時長,則過濾對應的服務器;當磁盤可用容量低于預設容量時,過濾對應的服務器。
可選的,所述確定模塊,用于:根據(jù)所述狀態(tài)信息計算服務器的承載能力,所述承載能力包括cpu空閑率、可承載最大人數(shù)、最大使用帶寬;選擇所述承載能力最大的服務器作為執(zhí)行所述請求的服務器。
本發(fā)明第三方面實施例提出了一種負載均衡器,包括:處理器、存儲器、通信接口和總線;所述處理器、所述存儲器和所述通信接口通過所述總線連接并完成相互間的通信;所述存儲器存儲可執(zhí)行程序代碼;所述處理器通過讀取所述存儲器中存儲的可執(zhí)行程序代碼來運行與所述可執(zhí)行程序代碼對應的程序,以用于執(zhí)行第一方面實施例所述的負載均衡方法。
本發(fā)明第四方面實施例提出了一種存儲介質(zhì),其中,所述存儲介質(zhì)用于存儲應用程序,所述應用程序用于在運行時執(zhí)行第一方面實施例所述的負載均衡方法。
本發(fā)明第五方面實施例提出了一種應用程序,其中,所述應用程序用于在運行時執(zhí)行第一方面實施例所述的負載均衡方法。
附圖說明
圖1是根據(jù)本發(fā)明一個實施例的負載均衡方法的流程圖;
圖2是根據(jù)本發(fā)明一個實施例的負載均衡裝置的結構示意圖;
圖3是根據(jù)本發(fā)明另一個實施例的負載均衡裝置的結構示意圖;
圖4是根據(jù)本發(fā)明一個實施例的負載均衡器的結構示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
下面參考附圖描述本發(fā)明實施例的負載均衡方法和負載均衡器。
圖1是根據(jù)本發(fā)明一個實施例的負載均衡方法的流程圖。
如圖1所示,負載均衡方法可包括:
s101,接收服務器主動上報的狀態(tài)信息,同時記錄第一時間。
其中,狀態(tài)信息用于描述服務器資源占用情況,可包括cpu占用率、服務當前在線人數(shù)、當前使用帶寬、磁盤可用容量等。
以提供vpn服務為例,客戶端在與服務器建立連接之后,需要長時間進行連接,在此期間使用的網(wǎng)絡寬帶根據(jù)使用的服務會有不同,且不同時間點所占用的資源也不盡相同。因此,相關技術中,使用傳統(tǒng)的負載均衡方式只能平均分散客戶端的請求,但無法動態(tài)地根據(jù)服務器的資源占用情況來分配。
為了解決上述問題,本發(fā)明的一個實施例中,采用服務器主動上報狀態(tài)信息的方式。與現(xiàn)有負載均衡器對服務器進行輪詢的方式不同,負載均衡器可以接收服務器定時主動上報的狀態(tài)信息,從而能夠及時地獲取每個服務器的資源占用情況,也減輕了負載均衡器的負擔。
負載均衡器在接收服務器主動上報的狀態(tài)信息時,同時可記錄第一時間。
此外,還可將接收到的狀態(tài)信息保存至本地。
s102,接收客戶端發(fā)起的請求,并記錄第二時間。
在本發(fā)明的一個實施例中,用戶需要請求服務時,可通過客戶端向負載均衡器發(fā)起請求,同時負載均衡器記錄接收到請求時的第二時間。
s103,根據(jù)狀態(tài)信息、第一時間和第二時間確定執(zhí)行請求的服務器。
在本發(fā)明的一個實施例中,可根據(jù)狀態(tài)信息、第一時間和第二時間過濾不符合預設條件的服務器,然后根據(jù)狀態(tài)信息從過濾后的服務器中計算出最優(yōu)服務器。
首先,可計算第一時間與第二時間之差,如果兩者差值超過預設時長,則過濾對應的服務器。例如:假設負載均衡器每隔1分鐘接收服務器主動上報的狀態(tài)信息(主動報活),緩沖時間(預設時長)為0.5分鐘,那么如果某服務器最近一次的主動報活的第一時間與接受請求時的第二時間之差超過了1.5分鐘,則可認為該服務器無法響應請求,過濾掉該服務器。
其次,當磁盤可用容量低于預設容量時,過濾對應的服務器。例如:過濾掉磁盤可用容量低于1gb的服務器,以避免相關的日志無法正常儲存或相關服務進程無法正確運作。
在過濾掉上述不符合預設條件的服務器之后,可根據(jù)狀態(tài)信息計算服務器的承載能力,然后選擇承載能力最大的服務器作為執(zhí)行請求的服務器。其中,承載能力包括cpu空閑率、可承載最大人數(shù)、最大使用帶寬等。例如:可分別計算出服務器當前仍可承載的cpu百分比例(cpu空閑率)、仍可承載的服務人數(shù)百分比例(可承載最大人數(shù)與服務當前在線人數(shù)之差,再除以可承載最大人數(shù))以及仍可承載的帶寬百分比例(最大使用帶寬與當前使用帶寬之差,再除以最大使用帶寬),再將計算出的三個數(shù)值取它們的平均值,從而得到服務器的承載能力。數(shù)值越大,說明服務器承載能力越強。可選擇數(shù)值最大的服務器作為執(zhí)行客戶端請求的服務器。
本發(fā)明實施例的負載均衡方法,根據(jù)接收到的服務器主動上報狀態(tài)信息及其對應的第一時間,客戶端發(fā)起的請求及其對應的第二時間,確定出執(zhí)行該請求的服務器,能夠有效地根據(jù)服務器的狀態(tài)信息動態(tài)分配最佳的執(zhí)行請求的服務器,更加靈活主動,提高服務響應速度。
為實現(xiàn)上述目的,本發(fā)明還提出一種負載均衡裝置。
圖2是根據(jù)本發(fā)明一個實施例的負載均衡裝置的結構示意圖。
如圖2所示,該負載均衡裝置可包括:接收模塊110、接受請求模塊120、確定模塊130。
接收模塊110用于接收服務器主動上報的狀態(tài)信息,同時記錄第一時間。
接受請求模塊120用于接收客戶端發(fā)起的請求,并記錄第二時間。
確定模塊130用于根據(jù)狀態(tài)信息、第一時間和第二時間確定執(zhí)行請求的服務器。
可選的,確定模塊,用于:根據(jù)狀態(tài)信息、第一時間和第二時間過濾不符合預設條件的服務器;根據(jù)狀態(tài)信息從過濾后的服務器中計算出最優(yōu)服務器。
可選的,確定模塊,用于:計算第一時間與第二時間之差,如果兩者差值超過預設時長,則過濾對應的服務器;當磁盤可用容量低于預設容量時,過濾對應的服務器。
可選的,確定模塊,用于:根據(jù)狀態(tài)信息計算服務器的承載能力,承載能力包括cpu空閑率、可承載最大人數(shù)、最大使用帶寬;選擇承載能力最大的服務器作為執(zhí)行請求的服務器。
此外,如圖3所示,本發(fā)明實施例的負載均衡裝置還可包括保存模塊140。
保存模塊140用于接收服務器主動上報的狀態(tài)信息時,保存狀態(tài)信息。
應當理解的是,關于上述實施例中的負載均衡裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關負載均衡方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本發(fā)明實施例的負載均衡裝置,根據(jù)接收到的服務器主動上報狀態(tài)信息及其對應的第一時間,客戶端發(fā)起的請求及其對應的第二時間,確定出執(zhí)行該請求的服務器,能夠有效地根據(jù)服務器的狀態(tài)信息動態(tài)分配最佳的執(zhí)行請求的服務器,更加靈活主動,提高服務響應速度。
為了實現(xiàn)上述實施例,本發(fā)明還提出一種負載均衡器。
圖4是根據(jù)本發(fā)明一個實施例的負載均衡器的結構示意圖。
如圖4所示,該負載均衡器包括處理器41、存儲器42、通信接口43和總線44,其中:處理器41、存儲器42和通信接口43通過總線44連接并完成相互間的通信;存儲器42存儲可執(zhí)行程序代碼;處理器41通過讀取存儲器42中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于執(zhí)行以下步驟:
s101’,接收服務器主動上報的狀態(tài)信息,同時記錄第一時間。
其中,狀態(tài)信息用于描述服務器資源占用情況,可包括cpu占用率、服務當前在線人數(shù)、當前使用帶寬、磁盤可用容量等。
以提供vpn服務為例,客戶端在與服務器建立連接之后,需要長時間進行連接,在此期間使用的網(wǎng)絡寬帶根據(jù)使用的服務會有不同,且不同時間點所占用的資源也不盡相同。因此,相關技術中,使用傳統(tǒng)的負載均衡方式只能平均分散客戶端的請求,但無法動態(tài)地根據(jù)服務器的資源占用情況來分配。
為了解決上述問題,本發(fā)明的一個實施例中,采用服務器主動上報狀態(tài)信息的方式。與現(xiàn)有負載均衡器對服務器進行輪詢的方式不同,負載均衡器可以接收服務器定時主動上報的狀態(tài)信息,從而能夠及時地獲取每個服務器的資源占用情況,也減輕了負載均衡器的負擔。
負載均衡器在接收服務器主動上報的狀態(tài)信息時,同時可記錄第一時間。
此外,還可將接收到的狀態(tài)信息保存至本地。
s102’,接收客戶端發(fā)起的請求,并記錄第二時間。
在本發(fā)明的一個實施例中,用戶需要請求服務時,可通過客戶端向負載均衡器發(fā)起請求,同時負載均衡器記錄接收到請求時的第二時間。
s103’,根據(jù)狀態(tài)信息、第一時間和第二時間確定執(zhí)行請求的服務器。
在本發(fā)明的一個實施例中,可根據(jù)狀態(tài)信息、第一時間和第二時間過濾不符合預設條件的服務器,然后根據(jù)狀態(tài)信息從過濾后的服務器中計算出最優(yōu)服務器。
首先,可計算第一時間與第二時間之差,如果兩者差值超過預設時長,則過濾對應的服務器。例如:假設負載均衡器每隔1分鐘接收服務器主動上報的狀態(tài)信息(主動報活),緩沖時間(預設時長)為0.5分鐘,那么如果某服務器最近一次的主動報活的第一時間與接受請求時的第二時間之差超過了1.5分鐘,則可認為該服務器無法響應請求,過濾掉該服務器。
其次,當磁盤可用容量低于預設容量時,過濾對應的服務器。例如:過濾掉磁盤可用容量低于1gb的服務器,以避免相關的日志無法正常儲存或相關服務進程無法正確運作。
在過濾掉上述不符合預設條件的服務器之后,可根據(jù)狀態(tài)信息計算服務器的承載能力,然后選擇承載能力最大的服務器作為執(zhí)行請求的服務器。其中,承載能力包括cpu空閑率、可承載最大人數(shù)、最大使用帶寬等。例如:可分別計算出服務器當前仍可承載的cpu百分比例(cpu空閑率)、仍可承載的服務人數(shù)百分比例(可承載最大人數(shù)與服務當前在線人數(shù)之差,再除以可承載最大人數(shù))以及仍可承載的帶寬百分比例(最大使用帶寬與當前使用帶寬之差,再除以最大使用帶寬),再將計算出的三個數(shù)值取它們的平均值,從而得到服務器的承載能力。數(shù)值越大,說明服務器承載能力越強??蛇x擇數(shù)值最大的服務器做為執(zhí)行客戶端請求的服務器。
本發(fā)明實施例的負載均衡器,根據(jù)接收到的服務器主動上報狀態(tài)信息及其對應的第一時間,客戶端發(fā)起的請求及其對應的第二時間,確定出執(zhí)行該請求的服務器,能夠有效地根據(jù)服務器的狀態(tài)信息動態(tài)分配最佳的執(zhí)行請求的服務器,更加靈活主動,提高服務響應速度。
為實現(xiàn)上述目的,本發(fā)明還提出一種存儲介質(zhì),其中,存儲介質(zhì)用于存儲應用程序,應用程序用于在運行時執(zhí)行第一方面實施例的負載均衡方法。
為實現(xiàn)上述目的,本發(fā)明還提出一種應用程序,其中,應用程序用于在運行時執(zhí)行第一方面實施例的負載均衡方法。
在本發(fā)明的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“長度”、“寬度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”“內(nèi)”、“外”、“順時針”、“逆時針”、“軸向”、“徑向”、“周向”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發(fā)明的限制。
此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個該特征。在本發(fā)明的描述中,“多個”的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。
在本發(fā)明中,除非另有明確的規(guī)定和限定,術語“安裝”、“相連”、“連接”、“固定”等術語應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或成一體;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通或兩個元件的相互作用關系,除非另有明確的限定。對于本領域的普通技術人員而言,可以根據(jù)具體情況理解上述術語在本發(fā)明中的具體含義。
在本發(fā)明中,除非另有明確的規(guī)定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接觸,或第一和第二特征通過中間媒介間接接觸。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或僅僅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或僅僅表示第一特征水平高度小于第二特征。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領域的普通技術人員在本發(fā)明的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型。