一種實現tcp長連接通信的負載智能分配系統及方法
【專利摘要】本發明提供一種實現TCP長連接通信的負載智能分配系統及方法,系統包括:負載分流服務器,用于計算出當前最適合進行TCP連接的TCP長連接通信服務器的IP地址、TCP服務端口分配給客戶端;TCP通信服務器基礎信息管理模塊,用于設置通信服務器的基礎信息和TCP長連接通信服務器及端口的允許連接數,最大偏移量信息;TCP長連接通信模塊,用于根據設置的TCP長連接通信服務器的連接數信息,動態計算TCP長連接通信服務器當前負載及允許的連接數;數據存儲服務器,用于存儲客戶端信息、業務邏輯數據、服務器基礎信息、用戶信息。本發明提供實現可水平擴展、TCP連接請求動態分配、服務器資源自定義設置、服務器負載實時監控的實現TCP長連接通信的負載智能分配系統及方法。
【專利說明】—種實現TCP長連接通信的負載智能分配系統及方法
【技術領域】
[0001]本發明涉及網絡通信【技術領域】,具體涉及一種實現TCP長連接通信的負載智能分配系統及方法。
【背景技術】
[0002]TCP長連接模式中,連接客戶端如果直接將TCP通信服務器IP地址、TCP通信端口進行硬編碼、而不是由通信平臺接口進行動態分配,將導致通信平臺的服務器不能發揮負載均衡及水平擴展的優勢,同時連接客戶端數量的上升可能導致服務器直接當機或無法接受連接客戶端新增加的TCP連接請求,也無法準確計算每個服務實例或硬件服務器當前活躍的在線連接線,系統資源消耗及當前負載。
【發明內容】
[0003]本發明的目的是結合HTTP、TCP/IP網絡協議,提供實現可水平擴展、TCP連接請求動態分配、服務器資源自定義設置、服務器負載實時監控的實現TCP長連接通信的負載智能分配系統及方法。
[0004]本發明是通過以下技術方案來實現的:
[0005]本發明一方面提供一種實現TCP長連接通信的負載智能分配系統,包括:
[0006]負載分流服務器,用于提供基于Http協議的接口服務,該接口調用TCP長連接通信服務器的TCP連接數、負載計算的業務邏輯,計算出當前最適合進行TCP連接的TCP長連接通信服務器的IP地址、TCP服務端口分配給連接的客戶端;
[0007]TCP通信服務器基礎信息管理模塊,用于設置TCP長連接通信服務器的基礎信息和TCP長連接通信服務器及端口的允許連接數,最大偏移量信息;
[0008]TCP長連接通信模塊,用于提供客戶端連接的TCP長連接通信服務,根據消息協議進行相應的業務邏輯處理,根據設置的TCP長連接通信服務器的連接數信息,在客戶端連接建立、斷開、斷線時動態計算TCP長連接通信服務器當前負載及允許的連接數;
[0009]數據存儲服務器,用于存儲與應用相關的客戶端信息、業務邏輯數據、服務器基礎信息、用戶信息。
[0010]進一步地,所述負載分流服務器包括通過Http服務接口實現TCP長連接通信服務的負載均衡器,并設置有非阻塞、帶優先級的事件調度模型,所述負載均衡器通過該調度模型處理所有的負載均衡任務分派、進程間通信。
[0011]進一步地,實現TCP長連接通信的負載智能分配系統還包括:
[0012]安全認證模塊,用于對用戶信息、客戶端信息、服務接入信息進行安全認證。
[0013]智能監控模塊,用于當監測到服務容器出現線程掛起或訪問延遲時,及時重啟該服務容器。
[0014]入侵檢測模塊,用于監控服務器和網絡的狀態并及時預警。
[0015]本發明另一方面提供一種實現TCP長連接通信的負載智能分配方法,包括:[0016]負載分流服務器接收客戶端發送的TCP連接請求;
[0017]負載分流服務器提供的Http接口調用TCP長連接通信服務器的TCP連接數、負載計算的業務邏輯,計算出當前最適合進行TCP連接的TCP長連接通信服務器的IP地址、TCP服務端口分配給連接的所述客戶端;
[0018]TCP長連接通信服務器在未達到設置的偏移量時,與客戶端建立TCP連接并更新服務器列表中當前連接數,以供所述負載分流服務器提供的Http接口調用;
[0019]與客戶端建立連接時TCP長連接通信服務器已達到連接數上限時,TCP長連接服務器反饋消息給客戶端,由客戶端請求負載分流服務器提供的Http服務接口進行重新分配;
[0020]TCP長連接通信服務器與客戶端的連接斷開、斷線時,更新服務器列表中當前連接數,以供所述負載分流服務器提供的Http接口調用。
[0021]進一步地,負載分流服務器負載過大則增加負載分流服務器以分擔負載并注冊新服務器地址以進行新的負載分配規則;
[0022]TCP長連接通信服務器負載過大則增加TCP長連接通信服務器,并在信息設置中增加新服務器的參數,由Http服務接口根據新的服務器列表進行客戶端連接資源的分配;
[0023]當數據存儲服務器負載過大時則增加數據存儲服務器,并修改數據存儲服務器配置實現負載分流,數據散列存儲。
[0024]進一步地,實現TCP長連接通信的負載智能分配方法還包括:
[0025]安全認證步驟:對用戶信息、客戶端信息、服務接入信息進行安全認證。
[0026]智能監控步驟:當監測到服務容器出現線程掛起或訪問延遲時,及時重啟該服務容器。
[0027]入侵檢測步驟:監控服務器和網絡的狀態并及時預警。
[0028]本發明與現有技術相比具有以下優點及有益效果:
[0029]( I)通過在連接客戶端與通信平臺建立TCP連接之前先通過Http接口向通信平臺請求TCP長連接地址和端口,由通信平臺計算出當前負載量最小的服務器地址和端口并分配給TCP連接客戶端,實現通信平臺可水平擴展、TCP連接請求動態分配;
[0030](2)基于Http、TCP等標準網絡協議,適用于任何具備網絡連接的客戶端實現相應的通信協議;
[0031](3)為客戶端提供統一的接口服務及技術規范,且返回給客戶端的信息采用標準的XML或JSON數據交換格式,客戶端只需識別約定的數據格式,減少了客戶端的開發工作量;
[0032](4)支持在虛擬專用網絡的環境中建立連接,使客戶端與服務器的網絡與公網實現隔離,提高了網絡的安全性;
[0033](5)對客戶端進行了安全認證確保了客戶端的訪問權限以及信息交互安全;
[0034](6)設置有智能監控模塊,用于服務器各承載接口的服務容器的穩定性和可訪問性;當監測到某服務容器出現線程掛起或訪問延遲時,智能監控模塊及時重啟該服務容器,確保接口的穩定性和可靠性;
[0035]( 7 )設置有入侵檢測模塊,用于監控服務器和網絡的健康狀態;若服務器或網絡出現異常,入侵檢測模塊自動發送郵件或手機短信給系統運維管理人員,確保服務器或網絡的異常盡快修復;
[0036](8)所述Http服務接口、TCP通信服務采用純Java6的開發語言,具有良好的兼容性,可兼容 Linux/Windows/Unix/Solaris 等操作系統。
【專利附圖】
【附圖說明】
[0037]圖1是本發明的實現TCP長連接通信的負載智能分配系統的結構示意圖;
[0038]圖2是本發明的實現TCP長連接通信的負載智能分配系統的架構示意圖;
[0039]圖3是本發明的實現TCP長連接通信的負載智能分配方法的流程示意圖;
[0040]圖4是本發明的實現TCP長連接通信的負載智能分配系統及方法的實施過程示意圖。
【具體實施方式】
[0041]下面結合附圖具體闡明本發明的實施方式,附圖僅供參考和說明使用,不構成對本發明專利保護范圍的限制。
[0042]如圖1所示,在本實施例中,本發明一方面提供一種實現TCP長連接通信的負載智能分配系統,包括:
[0043]負載分流服務器,用于提供基于Http協議的接口服務,所述接口調用TCP長連接通信服務器的TCP連接數、負載計算的業務邏輯,計算出當前最適合進行TCP連接的TCP長連接通信服務器的IP地址、TCP服務端口分配給連接的客戶端;
[0044]TCP通信服務器基礎信息管理模塊,基于Web方式為TCP長連接通信服務器提供基礎信息管理模塊,用于設置TCP長連接通信服務器的基礎信息和TCP長連接通信服務器及端口的允許連接數,最大偏移量信息,最大偏移量為在TCP長連接通信服務器的額定連接數基礎上設置一個連接數緩沖范圍,從而將允許連接數確定為額定連接數減去最大偏移量的值;例如,管理員根據服務器負載設置允許連接數為2500,最大偏移量為500,與客戶端建立連接時TCP長連接通信服務器已達到允許連接數上限2500時,TCP長連接服務器觸發事件并反饋消息給客戶端,由客戶端請求負載分流服務器提供的Http服務接口進行重新分配;
[0045]TCP長連接通信模塊,用于提供客戶端連接的TCP長連接通信服務,根據消息協議進行相應的業務邏輯處理,根據設置的TCP長連接通信服務器的連接數信息,在客戶端連接建立、斷開、斷線時動態計算TCP長連接通信服務器當前負載及允許的連接數;
[0046]數據存儲服務器,基于MySQL、MsSQL、Oracle等關系型數據庫或MongoDB等NoSQL數據庫提供數據存儲服務,用于存儲與應用相關的客戶端信息、業務邏輯數據、服務器基礎信息、用戶信息等。
[0047]在本發明的實施例中,實現TCP長連接通信的負載智能分配系統還包括WEB管理模塊,通過Http協議進行客戶端信息交互,查詢、管理、監控、設置服務器、客戶端相關信
肩、O
[0048]所述數據存儲服務器結合Memcached分布式內存數據庫通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高數據庫并發、減少數據庫服務器的壓力;在服務器硬件方面使用磁盤RAID5及全局熱備方法保存數據,確保服務數據的安全可靠及服務器磁盤陣列的穩定運行。
[0049]在本發明的實現TCP長連接通信的負載智能分配系統中,可以在虛擬專用網絡的環境中建立TCP連接,使客戶端與通信服務器的網絡與公網實現隔離〈如:GRE或L2TP等隧道協議的APN網絡〉,且每一次通訊都可以經過加密處理,使客戶端與通信服務器的網絡更安全可靠,也可以在3G等移動公網、Internet網絡建立TCP連接實現TCP通信。
[0050]在本發明的實施例中,所述客戶端與通信服務器的通信基于TCP/IP、HTTP協議。所述實現TCP長連接通信的負載智能分配系統基于TCP/IP協議、結合Http協議實現TCP服務的水平擴展及負載分發。
[0051 ] 在本發明的實施例中,所述負載分流服務器包括通過Http服務接口實現TCP長連接通信服務的負載均衡器,并設置有非阻塞、帶優先級的事件調度模型,所述負載均衡器通過該調度模型處理所有的負載均衡任務分派、進程間通信,提供了 TCP通信的高可靠性的保證及消息通信穩定性的保證,解決了 TCP通信服務器的單點依賴問題,結合雙機互備原理,可以實現TCP通信服務器的冗余備份。
[0052]在本發明的實施例中,實現TCP長連接通信的負載智能分配系統還包括:
[0053]安全認證模塊,設置于負載分流服務器的Http接口服務器中,用于對用戶信息、客戶端信息、服務接入信息進行安全認證。在信息交互過程中,對信息進行加密和認證處理,確保信息在傳輸過程中的安 全性和完整性。
[0054]智能監控模塊,用于監控各承載的Http接口的服務容器的穩定性和可訪問性;當監測到服務容器出現線程掛起或訪問延遲時,及時重啟該服務容器并修改相應的服務接口或TCP通信套接字,確保接口的穩定性和可靠性。
[0055]入侵檢測模塊,用于監控服務器和網絡的狀態并及時預警;若服務器或網絡出現異常,入侵檢測模塊自動發送郵件或手機短信給運維管理人員,確保服務器或網絡的異常盡快修復。例如,若網絡遭非法入侵或暴力破解等,反入侵軟件將訪問者加入黑名單列表以保障服務器及網絡的安全;若硬件設備等導致的服務器、網絡故障,網絡運維管理人員也能第一時間知道當前出現故障的節點和原因,同時備份服務器將接管相應的服務。
[0056]考慮到本發明的實現TCP長連接通信的負載智能分配系統的并發承載、支持水平擴展、避免單點故障等基礎需求,在本實施例中,采用每一個服務由多個應用程序實例或多個硬件服務器實例對外提供服務的方式,如圖2所示:
[0057]TCP長連接通信服務由T1、T2、T3-.Tn等N個應用程序實例或硬件服務器實例組成,Http負載分流服務由Hl、H2、H3…Hn等N個應用程序實例或硬件服務器實例組成;圖2中的標識說明如下:
[0058]Cl、C2、C3表示需與服務器建立TCP長連接的客戶端;
[0059]H1、H2、H3表示提供負載分流服務的Http軟件實例或硬件服務器;
[0060]Tl、T2、T3表示提供TCP連接服務的軟件實例或硬件服務器;
[0061]D1、D2、D3表示提供數據信息存儲、管理的關系或非關系型數據庫管理系統;
[0062]這樣設置的優點是:同一服務任一節點發生故障或需要重啟應用時,服務依然可以正常運行;如果并發量增加,性能成為瓶頸,可以通過水平擴展來解決并發負載;Http負載分流服務動態計算各應用或服務器負載,保證系統穩定可靠的提供服務。
[0063]本發明的實現TCP長連接通信的負載智能分配系統的關鍵實施過程是:動態設置TCP通信平臺各應用程序實例或硬件服務器最大連接數、偏移量;動態計算通訊平臺各應用程序實例或硬件服務器當前活躍連接數、剩余連接數;通過Http接口動態為連接客戶端分配當前負載最輕的TCP通訊服務實例。
[0064]如圖3所示,本發明另一方面提供一種實現TCP長連接通信的負載智能分配方法,包括:
[0065]負載分流服務器接收客戶端發送的TCP連接請求;
[0066]負載分流服務器提供的Http接口調用TCP長連接通信服務器的TCP連接數、負載計算的業務邏輯,計算出當前最適合進行TCP連接的TCP長連接通信服務器的IP地址、TCP服務端口分配給連接的所述客戶端;
[0067]TCP長連接通信服務器在未達到設置的偏移量時,與客戶端建立TCP連接并更新服務器列表中當前連接數,以供所述負載分流服務器提供的Http接口調用;
[0068]與客戶端建立連接時TCP長連接通信服務器已達到連接數上限時,TCP長連接服務器反饋消息給客戶端,由客戶端請求負載分流服務器提供的Http服務接口進行重新分配;
[0069]TCP長連接通信服務器與客戶端的連接斷開、斷線時,更新服務器列表中當前連接數,以供所述負載分流服務器提供的Http接口調用。
[0070]結合圖2所示,在本發明的實施例中,負載分流服務器負載過大則增加負載分流服務器以分擔負載并注冊新服務器地址以進行新的負載分配規則;
[0071]TCP長連接通信服務器負載過大則增加TCP長連接通信服務器,并在信息設置中增加新服務器的參數,由Http服務接口根據新的服務器列表進行客戶端連接資源的分配;
[0072]當數據存儲服務器負載過大時則增加數據存儲服務器,并修改數據存儲服務器配置實現負載分流,數據散列存儲。
[0073]在本發明的實施例中,實現TCP長連接通信的負載智能分配方法還包括:
[0074]安全認證步驟:對用戶信息、客戶端信息、服務接入信息進行安全認證。
[0075]智能監控步驟:當監測到服務容器出現線程掛起或訪問延遲時,及時重啟該服務容器并修改相應的服務接口或TCP通信套接字。
[0076]入侵檢測步驟:監控服務器和網絡的狀態并及時預警。
[0077]如圖4所示,本發明提供的實現TCP長連接通信的負載智能分配系統及方法的具體實施過程是:在系統的信息設置功能中,通過WEB方式提供設置當前已有的TCP長連接服務器列表(IP地址、在線用戶列表緩存KEY值、端口、當前連接數、連接數最大閥值、偏移量)并記錄在數據存儲共享區域,客戶端需要與TCP服務產生TCP長連接時,需要先訪問Http服務接口,通過該接口為客戶端分配當前最適合建立TCP長連接的服務器地址、端口,TCP長連接服務在未達到設置的偏移量時與客戶端建立TCP連接并更新服務器列表中當前連接數,如果因為客戶端產生的連接時差問題導致建立連接時TCP長連接服務器已達到連接上限,則由TCP長連接服務器反饋消息給客戶端,由客戶端請求Http服務接口進行重新分配,這樣,就獲得了對實現TCP長連接通信的負載智能分配系統的水平擴展的技術效果。TCP長連接通信服務器與客戶端的連接斷開、斷線時,更新服務器列表中當前連接數,客戶端請求Http服務接口進行分配時,所述負載分流服務器提供的Http接口調用更新后的服務器列表中當前連接數。[0078]上述實施例為本發明較佳的實施方式,但本發明的實施方式并不受上述實施例的限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發明的保護范圍之內。
【權利要求】
1.一種實現TCP長連接通信的負載智能分配系統,其特征在于,包括: 負載分流服務器,用于提供基于Http協議的接口服務,該接口調用TCP長連接通信服務器的TCP連接數、負載計算的業務邏輯,計算出當前最適合進行TCP連接的TCP長連接通信服務器的IP地址、TCP服務端口分配給連接的客戶端; TCP通信服務器基礎信息管理模塊,用于設置TCP長連接通信服務器的基礎信息和TCP長連接通信服務器及端口的允許連接數,最大偏移量信息; TCP長連接通信模塊,用于提供客戶端連接的TCP長連接通信服務,根據消息協議進行相應的業務邏輯處理,根據設置的TCP長連接通信服務器的連接數信息,在客戶端連接建立、斷開、斷線時動態計算TCP長連接通信服務器當前負載及允許的連接數; 數據存儲服務器,用于存儲與應用相關的客戶端信息、業務邏輯數據、服務器基礎信息、用戶信息。
2.根據權利要求1所述的實現TCP長連接通信的負載智能分配系統,其特征在于:所述負載分流服務器包括通過Http服務接口實現TCP長連接通信服務的負載均衡器,并設置有非阻塞、帶優先級的事件調度模型,所述負載均衡器通過該調度模型處理所有的負載均衡任務分派、進程間通信。
3.根據權利要求1所述的實現TCP長連接通信的負載智能分配系統,其特征在于,還包括: 安全認證模塊,用于對用戶信息、客戶端信息、服務接入信息進行安全認證。
4.根據權利 要求1所述的實現TCP長連接通信的負載智能分配系統,其特征在于,還包括: 智能監控模塊,用于當監測到服務容器出現線程掛起或訪問延遲時,及時重啟該服務容器。
5.根據權利要求1所述的實現TCP長連接通信的負載智能分配系統,其特征在于,還包括: 入侵檢測模塊,用于監控服務器和網絡的狀態并及時預警。
6.一種實現TCP長連接通信的負載智能分配方法,其特征在于,包括: 負載分流服務器接收客戶端發送的TCP連接請求; 負載分流服務器提供的Http接口調用TCP長連接通信服務器的TCP連接數、負載計算的業務邏輯,計算出當前最適合進行TCP連接的TCP長連接通信服務器的IP地址、TCP服務端口分配給連接的所述客戶端; TCP長連接通信服務器在未達到設置的連接數偏移量時,與客戶端建立TCP連接并更新服務器列表中當前連接數,以供所述負載分流服務器提供的Http接口調用; 與客戶端建立連接時TCP長連接通信服務器已達到連接數上限時,TCP長連接服務器反饋消息給客戶端,由客戶端請求負載分流服務器提供的Http服務接口進行重新分配;TCP長連接通信服務器與客戶端的連接斷開、斷線時,更新服務器列表中當前連接數,以供所述負載分流服務器提供的Http接口調用。
7.根據權利要求6所述的實現TCP長連接通信的負載智能分配方法,其特征在于: 負載分流服務器負載過大則增加負載分流服務器以分擔負載并注冊新服務器地址以進行新的負載分配規則;TCP長連接通信服務器負載過大則增加TCP長連接通信服務器,并在信息設置中增加新服務器的參數,由Http服務接口根據新的服務器列表進行客戶端連接資源的分配; 當數據存儲服務器負載過大時則增加數據存儲服務器,并修改數據存儲服務器配置實現負載分流,數據散列存儲。
8.根據權利要求6所述的實現TCP長連接通信的負載智能分配方法,其特征在于,還包括: 安全認證步驟:對用戶信息、客戶端信息、服務接入信息進行安全認證。
9.根據權利要求6所述的實現TCP長連接通信的負載智能分配方法,其特征在于,還包 括: 智能監控步驟:當監測到服務容器出現線程掛起或訪問延遲時,及時重啟該服務容器。
10.根據權利要求6所述的實現TCP長連接通信的負載智能分配方法,其特征在于,還包括: 入侵檢測步驟:監控服務器和網絡的狀態并及時預警。
【文檔編號】H04L12/24GK103618738SQ201310661665
【公開日】2014年3月5日 申請日期:2013年12月9日 優先權日:2013年12月9日
【發明者】劉志堅 申請人:惠州華陽通用電子有限公司