發送和處理業務請求信息的方法和系統以及客戶端裝置制造方法
【專利摘要】本發明提供一種發送和處理業務請求信息的方法和系統以及客戶端裝置,能夠有助于平衡服務端負載,保證客戶端請求能夠被可靠處理。該方法包括:客戶端從本地保存的可用業務服務器列表中,按照預設的服務器權重選取一業務服務器,然后將客戶端業務請求信息直接發送到選取的業務服務器;在選取的業務服務器不可用的情況下,所述客戶端再次按照預設的業務服務器權重選取另一業務服務器,然后將客戶端業務請求信息直接發送到該另一業務服務器。
【專利說明】發送和處理業務請求信息的方法和系統以及客戶端裝置
【技術領域】
[0001]本發明涉及一種發送和處理業務請求信息的方法和系統以及客戶端裝置。
【背景技術】
[0002]通過客戶端采集數據發送至服務端進行分析這一策略已成為眾多監控系統的一個重要解決方案,通常情況下,客戶端分布廣,數目不定,且可能會動態增減,因此在客戶端數目較多,單個客戶端傳輸數據量較大時,要保證服務端為客戶端提供穩定可靠的服務面臨著巨大的挑戰。
[0003]為保證服務穩定可靠,現有的技術通常采用的平衡服務端負載的方法大致有以下兩種:
[0004]Nginx軟負載均衡:Nginx作為負載均衡服務器通常應用于web層的請求流量分發,通過內部均衡算法將請求轉發到不同的服務端,保證服務響應的穩定和可靠性;
[0005]F5硬件負載均衡:F5的全稱為F5BIG-1P LTM(本地流量管理器),是一臺對流量和內容進行管理分配的設備,它統一接收全部請求,然后按照設定好的算法將這些請求分配給這個負載均衡組中的所有成員,以此來實現請求(負載)的均衡分配。BIG/IP利用定義在其上面的虛擬IP地址來為用戶的一個或多個應用服務器提供服務。因此,它能夠為大量的基于TCP/IP的網絡應用提供服務器負載均衡服務。BIG/IP連續地對目標服務器進行L4到L7合理性檢查,當用戶通過VIP請求目標服務器服務時,BIG/IP根椐目標服務器之間性能和網絡健康情況,選擇性能最佳的服務器響應用戶的請求。
[0006]F5負載均衡流程如下:
[0007]1.客戶發出服務請求到VIP ;
[0008]2.BIGIP接收到請求,將數據包中目的IP地址改為選中的后臺服務器IP地址,然后將數據包發出到后臺選定的服務器;
[0009]3.后臺服務器收到后,將應答包按照其路由發回到BIGIP ;
[0010]4.BIGIP收到應答包后將其中的源地址改回成VIP的地址,發回客戶端,由此就完成了 一個標準的服務器負載平衡的流程。
[0011]Nginx軟負載均衡與F5的設計架構相類似,示于圖1中。圖1是根據現有技術中的一種負載均衡設計架構的示意圖。如圖1所示,多個客戶端111、112、113等將業務請求發送到同一個負載均衡器12上,再由該負載均衡器12向各業務服務器131、132、133等轉發業務請求。從圖1可以看出,各個客戶端都將請求發到同一個負載均衡器上,均衡器通過負載均衡算法將請求分發到負載均衡器下面掛載的具體的服務端。
[0012]負載均衡設備本身為單點配置,因此上述設計架構的最大缺點在于均衡器本身資源局限性,即網絡流量將是最大且難以解決的瓶頸。當客戶端數目過多,請求數據量非常大時,一旦網絡流量達到均衡器或者均衡服務器網卡的上限,更多的客戶端請求將無法正常轉發處理,這不僅會導致客戶端的請求處理緩慢,堵塞客戶端請求,進一步還可能出現請求超時或者數據丟失等嚴重問題。
【發明內容】
[0013]有鑒于此,本發明提供一種發送和處理業務請求信息的方法和系統以及客戶端裝置,能夠有助于平衡服務端負載,保證客戶端請求能夠被可靠處理。
[0014]為實現上述目的,根據本發明的一個方面,提供了 一種發送業務請求信息的方法。
[0015]本發明的發送業務請求信息的方法包括:客戶端從本地保存的可用業務服務器列表中,按照預設的服務器權重選取一業務服務器,然后將客戶端業務請求信息直接發送到選取的業務服務器;在選取的業務服務器不可用的情況下,所述客戶端再次按照預設的業務服務器權重選取另一業務服務器,然后將客戶端業務請求信息直接發送到該另一業務服務器。
[0016]可選地,所述按照預設的服務器權重選取一業務服務器的步驟之前,還包括:獲取網絡側保存的當前的可用業務服務器列表,所述可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比;所述按照預設的業務服務器權重選取一業務服務器的步驟包括:從所述當前的可用業務服務器列表中隨機選取一業務服務器。
[0017]根據本發明的另一方面,提供了一種處理業務請求信息的方法。
[0018]本發明的處理業務請求信息的方法包括:存儲系統接收業務服務器發送的該業務服務器的標識然后保存;中心服務器在接收到客戶端發送的用于查詢業務服務器的請求信息后,從所述存儲系統獲取多個狀態為有效的業務服務器的標識然后與預設的各業務服務器權重的信息一并發送給所述客戶端,以供該客戶端從中根據權重選擇業務服務器;被所述客戶端選擇的業務服務器接收該客戶端直接發送的客戶端業務請求信息。
[0019]可選地,所述與預設的各業務服務器權重的信息一并發送給所述客戶端的步驟包括:將當前的可用業務服務器列表發送給所述客戶端,所述可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比。
[0020]可選地,存儲系統接收業務服務器發送的該業務服務器的標識之后,還包括:所述業務服務器每隔預設的時間間隔,向所述存儲系統發送當前的時間戳;所述狀態為有效的業務服務器是在最近的所述時間間隔的時長以內向所述存儲系統發送時間戳的業務服務器。
[0021 ] 根據本發明的又一方面,提供了 一種客戶端裝置。
[0022]本發明的客戶端裝置包括:選擇模塊,用于從本地保存的可用業務服務器列表中,按照預設的服務器權重選取一業務服務器;發送模塊,用于將客戶端業務請求信息直接發送到所述選擇模塊選取的業務服務器;所述選擇模塊還用于在選取的業務服務器不可用的情況下,再次按照預設的業務服務器權重選取另一業務服務器。
[0023]可選地,還包括查詢模塊,用于獲取網絡側保存的當前的可用業務服務器列表,所述可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比;所述選擇模塊還用于:從所述查詢模塊獲取的當前的可用業務服務器列表中隨機選取一業務服務器。
[0024]根據本發明的又一方面,提供了一種處理業務請求信息的系統。[0025]本發明的處理業務請求信息的系統包括:存儲系統模塊,用于接收業務服務器發送的該業務服務器的標識然后保存;中心服務模塊,用于在接收到客戶端發送的用于查詢業務服務器的請求信息后,從所述存儲系統模塊中獲取多個狀態為有效的業務服務器的標識然后與預設的各業務服務器權重的信息一并發送給所述客戶端,以供該客戶端從中根據權重選擇業務服務器;業務服務模塊,用于接收所述客戶端直接發送的客戶端業務請求信肩、O
[0026]可選地,所述中心服務模塊還用于:將當前的可用業務服務器列表發送給所述客戶端,所述可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比。
[0027]可選地,所述業務服務模塊還用于在向所述存儲系統模塊發送業務服務器的標識之后,每隔預設的時間間隔,向所述存儲系統模塊發送當前的時間戳;所述狀態為有效的業務服務器是在最近的所述時間間隔的時長以內向所述存儲系統發送時間戳的業務服務器。
[0028]根據本發明的技術方案,將業務服務器的有效狀態信息提供給客戶端,客戶端選擇業務服務器之后直接向被選業務服務器發送業務請求信息,實現了在客戶端一側進行負載均衡,無需網絡側專門的負載均衡設備,從而解決了因在服務端負載均衡引起的網絡瓶頸問題。因為是由客戶端隨機選擇的有效服務器來受理客戶端請求,所以在實現客戶端請求能夠被有效響應的同時避免了負載均衡設備本身導到的網絡瓶頸問題,有助于平衡服務端負載,保證客戶端請求能夠被可靠處理。
【專利附圖】
【附圖說明】
[0029]附圖用于更好地理解本發明,不構成對本發明的不當限定。其中:
[0030]圖1是根據現有技術中的一種負載均衡設計架構的示意圖;
[0031]圖2是根據本發明實施例的負載均衡架構的示意圖;
[0032]圖3是根據本發明實施例的客戶端裝置的基本結構的示意圖;
[0033]圖4是根據本發明實施例的處理業務請求信息的系統的基本結構的示意圖。
【具體實施方式】
[0034]以下結合附圖對本發明的示范性實施例做出說明,其中包括本發明實施例的各種細節以助于理解,應當將它們認為僅僅是示范性的。因此,本領域普通技術人員應當認識至IJ,可以對這里描述的實施例做出各種改變和修改,而不會背離本發明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對公知功能和結構的描述。
[0035]圖2是根據本發明實施例的負載均衡架構的示意圖。如圖2所示,在網絡側(圖中實線20的右側)有中心服務器21、存儲服務器22以及多個業務服務器231、232、233等。在終端側有多個客戶端241、242、243等。上述的中心服務器21、存儲服務器22可以是服務器集群。
[0036]在業務服務器啟動之后,將自身的基本信息注冊到存儲服務器,包括IP地址、端口號、以及預設的權重和當前時間。這些信息可以用表項的形式保存在存儲服務器中。另夕卜,為了體現業務服務器的可用性,業務服務器每過一個預設的時間間隔(例如40S),就向存儲服務器發送當前時間以表示自身當前狀態為有效,能夠接受業務請求。[0037]客戶端啟動時查詢當前有哪些業務服務器為有效狀態,具體可以調用中心服務器發布的查詢接口。中心服務器在收到客戶端的查詢時,從存儲服務器中獲取狀態為有效的業務服務器的列表。狀態為有效的業務服務器是在最近的上述時間間隔(例如40S)的時長以內向存儲系統發送時間戳的業務服務器。同時中心服務器獲得這些業務服務器的權重。最后將帶有權重信息的業務服務器列表發送給客戶端。
[0038]客戶端接收中心服務器發送的該列表然后保存到本地,根據權重從該列表中選擇一業務服務器,然后將客戶端業務請求直接發送給該業務服務器,而不是像現有技術那樣先發送給一個負載均衡裝置。如果該業務服務器不可用,客戶端再根據權重選擇另一業務服務器。此時還可以將不可用的業務服務器從本地保存的列表中刪除。例如,客戶端243從本地保存的列表中選擇了業務服務器232,然后就將客戶端業務請求直接發送給業務服務器232,此時客戶端243與業務服務器232之間為直接連接,如圖2所示。
[0039]中心服務器向客戶端發送的可用的業務服務器的列表中,可以是包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比,即同一個業務服務器可能出現在多個表項中,并且客戶端從該表中選擇業務服務器時是隨機選擇,這樣權重較大的業務服務器因在表中出現次數較多從而更可能被客戶端選擇。
[0040]圖3是根據本發明實施例的客戶端裝置的基本結構的示意圖。該客戶端裝置可以設置在客戶端設備中,例如個人計算機。如圖3所示,客戶端裝置30主要包括選擇模塊31和發送模塊32。
[0041]選擇模塊31用于從本地保存的可用業務服務器列表中,按照預設的服務器權重選取一業務服務器;發送模塊32用于將客戶端業務請求信息直接發送到所述選擇模塊選取的業務服務器;選擇模塊31還用于在選取的業務服務器不可用的情況下,再次按照預設的業務服務器權重選取另一業務服務器。
[0042]客戶端裝置30還可包括查詢模塊(圖中未示出),用于獲取網絡側保存的當前的可用業務服務器列表,該可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比;這樣,選擇模塊31還可用于從查詢模塊獲取的當前的可用業務服務器列表中隨機選取一業務服務器。
[0043]圖4是根據本發明實施例的處理業務請求信息的系統的基本結構的示意圖。如圖4所示,處理業務請求信息系統40由多個分布在上述的各個服務器中的模塊構成,主要包括設置在存儲服務器中的存儲系統模塊41、設置在中心服務器中的中心服務模塊42、以及設置在業務服務器中的業務服務模塊43。
[0044]存儲系統模塊41用于接收業務服務器發送的該業務服務器的標識然后保存;中心服務模塊42用于在接收到客戶端發送的用于查詢業務服務器的請求信息后,從存儲系統模塊41中獲取多個狀態為有效的業務服務器的標識然后與預設的各業務服務器權重的信息一并發送給客戶端,以供該客戶端從中根據權重選擇業務服務器;業務服務模塊43用于接收客戶端直接發送的客戶端業務請求信息。
[0045]中心服務模塊42還可用于:將當前的可用業務服務器列表發送給客戶端,該可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比。[0046]業務服務模塊43還可用于在向存儲系統模塊41發送業務服務器的標識之后,每隔預設的時間間隔,向存儲系統模塊41發送當前的時間戳。
[0047]根據本發明實施例的技術方案,根據本發明的技術方案,將業務服務器的有效狀態信息提供給客戶端,客戶端選擇業務服務器之后直接向被選業務服務器發送業務請求信息,實現了在客戶端一側進行負載均衡,無需網絡側專門的負載均衡設備,從而解決了因在服務端負載均衡引起的網絡瓶頸問題。因為是由客戶端隨機選擇的有效服務器來受理客戶端請求,所以在實現客戶端請求能夠被有效響應的同時避免了負載均衡設備本身導到的網絡瓶頸問題,有助于平衡服務端負載,保證客戶端請求能夠被可靠處理。
[0048]以上結合具體實施例描述了本發明的基本原理,但是,需要指出的是,對本領域的普通技術人員而言,能夠理解本發明的方法和設備的全部或者任何步驟或者部件,可以在任何計算裝置(包括處理器、存儲介質等)或者計算裝置的網絡中,以硬件、固件、軟件或者它們的組合加以實現,這是本領域普通技術人員在閱讀了本發明的說明的情況下運用他們的基本編程技能就能實現的。
[0049]因此,本發明的目的還可以通過在任何計算裝置上運行一個程序或者一組程序來實現。所述計算裝置可以是公知的通用裝置。因此,本發明的目的也可以僅僅通過提供包含實現所述方法或者裝置的程序代碼的程序產品來實現。也就是說,這樣的程序產品也構成本發明,并且存儲有這樣的程序產品的存儲介質也構成本發明。顯然,所述存儲介質可以是任何公知的存儲介質或者將來開發出的任何存儲介質。
[0050]還需要指出的是,在本發明的裝置和方法中,顯然,各部件或各步驟是可以分解和/或重新組合的。這些分解和/或重新組合應視為本發明的等效方案。并且,執行上述系列處理的步驟可以自然地按照說明的順序按時間順序執行,但是并不需要一定按照時間順序執行。某些步驟可以并行或彼此獨立地執行。
[0051]上述【具體實施方式】,并不構成對本發明保護范圍的限制。本領域技術人員應該明白的是,取決于設計要求和其他因素,可以發生各種各樣的修改、組合、子組合和替代。任何在本發明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發明保護范圍之內。
【權利要求】
1.一種發送業務請求信息的方法,其特征在于,包括: 客戶端從本地保存的可用業務服務器列表中,按照預設的服務器權重選取一業務服務器,然后將客戶端業務請求信息直接發送到選取的業務服務器; 在選取的業務服務器不可用的情況下,所述客戶端再次按照預設的業務服務器權重選取另一業務服務器,然后將客戶端業務請求信息直接發送到該另一業務服務器。
2.根據權利要求1所述的方法,其特征在于, 所述按照預設的服務器權重選取一業務服務器的步驟之前,還包括:獲取網絡側保存的當前的可用業務服務器列表,所述可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比; 所述按照預設的業務服務器權重選取一業務服務器的步驟包括:從所述當前的可用業務服務器列表中隨機選取一業務服務器。
3.—種處理業務請求信息的方法,其特征在于,包括: 存儲系統接收業務服務器發送的該業務服務器的標識然后保存; 中心服務器在接收到客戶端發送的用于查詢業務服務器的請求信息后,從所述存儲系統獲取多個狀態為有效的業務服務器的標識然后與預設的各業務服務器權重的信息一并發送給所述客戶端,以供該客戶端從中根據權重選擇業務服務器; 被所述客戶端選擇的業務服務器接收該客戶端直接發送的客戶端業務請求信息。
4.根據權利要求3所述的方`法,其特征在于,所述與預設的各業務服務器權重的信息一并發送給所述客戶端的步驟包括:將當前的可用業務服務器列表發送給所述客戶端,所述可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比。
5.根據權利要求3或4所述的方法,其特征在于, 存儲系統接收業務服務器發送的該業務服務器的標識之后,還包括:所述業務服務器每隔預設的時間間隔,向所述存儲系統發送當前的時間戳; 所述狀態為有效的業務服務器是在最近的所述時間間隔的時長以內向所述存儲系統發送時間戳的業務服務器。
6.一種客戶端裝置,其特征在于,包括: 選擇模塊,用于從本地保存的可用業務服務器列表中,按照預設的服務器權重選取一業務服務器; 發送模塊,用于將客戶端業務請求信息直接發送到所述選擇模塊選取的業務服務器; 所述選擇模塊還用于在選取的業務服務器不可用的情況下,再次按照預設的業務服務器權重選取另一業務服務器。
7.根據權利要求6所述的客戶端裝置,其特征在于, 還包括查詢模塊,用于獲取網絡側保存的當前的可用業務服務器列表,所述可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比; 所述選擇模塊還用于:從所述查詢模塊獲取的當前的可用業務服務器列表中隨機選取一業務服務器。
8.—種處理業務請求信息的系統,其特征在于,包括: 存儲系統模塊,用于接收業務服務器發送的該業務服務器的標識然后保存; 中心服務模塊,用于在接收到客戶端發送的用于查詢業務服務器的請求信息后,從所述存儲系統模塊中獲取多個狀態為有效的業務服務器的標識然后與預設的各業務服務器權重的信息一并發送給所述客戶端,以供該客戶端從中根據權重選擇業務服務器; 業務服務模塊,用于接收所述客戶端直接發送的客戶端業務請求信息。
9.根據權利要求8所述的系統,其特征在于,所述中心服務模塊還用于:將當前的可用業務服務器列表發送給所述客戶端,所述可用業務服務器列表包含多個表項,各個表項中包含可用業務服務器的標識,并且包含同一個業務服務器的標識的表項的個數與該業務服務器的預設權重成正比。
10.根據權利要求8或9所述的系統,其特征在于, 所述業務服務模塊還用于在向所述存儲系統模塊發送業務服務器的標識之后,每隔預設的時間間隔,向所述存儲系統模塊發送當前的時間戳; 所述狀態為有效的業務服務器是在最近的所述時間間隔的時長以內向所述存儲系統發送時間戳的業務服務器 。
【文檔編號】H04L29/08GK103442030SQ201310330017
【公開日】2013年12月11日 申請日期:2013年7月31日 優先權日:2013年7月31日
【發明者】韓銘, 陳澤洪 申請人:北京京東尚科信息技術有限公司, 北京京東世紀貿易有限公司