本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)方法及其基于應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)方法的一種應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)系統(tǒng)。
背景技術(shù):
在云平臺(tái)中,負(fù)載均衡系統(tǒng)是由多臺(tái)服務(wù)器以對(duì)稱的方式組成一個(gè)服務(wù)器集群,每臺(tái)服務(wù)器都具有等價(jià)的地位,都可以單獨(dú)對(duì)外提供服務(wù)而無(wú)須其他服務(wù)器的輔助。通過某種負(fù)載分擔(dān)技術(shù),將外部發(fā)送來的請(qǐng)求均勻分配到對(duì)稱結(jié)構(gòu)中的某一臺(tái)服務(wù)器上,而接收到請(qǐng)求的服務(wù)器獨(dú)立地回應(yīng)客戶的請(qǐng)求。均衡負(fù)載能夠平均分配客戶請(qǐng)求到服務(wù)器列陣,籍此提供快速獲取重要數(shù)據(jù),解決大量并發(fā)訪問服務(wù)問題。這種群集技術(shù)可以用最少的投資獲得接近于大型主機(jī)的性能。
如圖1所示,現(xiàn)有技術(shù)中的報(bào)文分發(fā)系統(tǒng)通常包括路由器1、負(fù)載均衡系統(tǒng)2和后端服務(wù)器群3組成。后端服務(wù)器群3中形成有多個(gè)服務(wù)器31、32。用戶在客戶端5通過云4或者網(wǎng)絡(luò)訪問后端服務(wù)器群3中某一個(gè)服務(wù)器上的內(nèi)容,所有報(bào)文必須順序的通過路由器1到負(fù)載均衡系統(tǒng)2,然后由負(fù)載均衡系統(tǒng)2通過軟件技術(shù)將所有請(qǐng)求平均分配給所有后端服務(wù)器群3中的多個(gè)服務(wù)器。因此,現(xiàn)有技術(shù)中報(bào)文分發(fā)系統(tǒng)或者報(bào)文分發(fā)方法無(wú)法繞開負(fù)載均衡系統(tǒng)2,因此對(duì)負(fù)載均衡系統(tǒng)2造成極大的負(fù)荷及計(jì)算開銷,并可能導(dǎo)致整個(gè)網(wǎng)路中報(bào)文分發(fā)效率較低。
有基于此,需要對(duì)現(xiàn)有技術(shù)中的包含有負(fù)載均衡系統(tǒng)的報(bào)文分發(fā)技術(shù)作出改進(jìn),以克服上述技術(shù)瑕疵。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于公開一種應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)方法,以及基于該報(bào)文快速分發(fā)方法的一種應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)裝置,用以實(shí)現(xiàn)借由路由器實(shí)現(xiàn)對(duì)符合設(shè)定規(guī)則的報(bào)文繞開負(fù)載均衡系統(tǒng)而直接向服務(wù)器實(shí)現(xiàn)報(bào)文路由的功能,用以減輕負(fù)載均衡系統(tǒng)的開銷,提高網(wǎng)絡(luò)中的報(bào)文分發(fā)效率。
為實(shí)現(xiàn)上述第一個(gè)發(fā)明目的,本發(fā)明公開了一種應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)方法,包括以下步驟:路由報(bào)文時(shí)查找內(nèi)建于路由器的快速數(shù)據(jù)通道列表,并在報(bào)文與快速數(shù)據(jù)通道列表的至少一個(gè)快速數(shù)據(jù)通道列表項(xiàng)相匹配時(shí),按照快速數(shù)據(jù)通道列表中預(yù)先配置的更改規(guī)則更改報(bào)文,使用路由器內(nèi)建的路由表將報(bào)文路由至符合快速數(shù)據(jù)通道列表的服務(wù)器中,以在路由器與后端服務(wù)器群中的服務(wù)器之間建立快速數(shù)據(jù)通道。
作為本發(fā)明的進(jìn)一步改進(jìn),所述快速數(shù)據(jù)通道列表項(xiàng)包括匹配條件字段、報(bào)文更改操作字段、目的地服務(wù)器地址字段、匹配計(jì)數(shù)字段。
作為本發(fā)明的進(jìn)一步改進(jìn),所述匹配條件字段由源IP地址、源端口、目的IP地址、目的端口、傳輸層協(xié)議、MAC源地址、MAC目的地地址、報(bào)文優(yōu)先級(jí)、http會(huì)話ID、路由端口或者自定義字段中的至少一種所組成。
作為本發(fā)明的進(jìn)一步改進(jìn),所述匹配條件字段包括一元組、二元組、三元組、四元組、五元組、六元組、七元組或者八元組。
作為本發(fā)明的進(jìn)一步改進(jìn),該應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)方法還包括:當(dāng)報(bào)文與快速數(shù)據(jù)通道列表中的所有快速數(shù)據(jù)通道列表項(xiàng)均不匹配時(shí),通過快速數(shù)據(jù)通道協(xié)議創(chuàng)建快速數(shù)據(jù)通道列表項(xiàng),并保存至路由器內(nèi)置的快速數(shù)據(jù)通道列表中,所述快速數(shù)據(jù)通道協(xié)議包括openflow協(xié)議或者netconf協(xié)議。
作為本發(fā)明的進(jìn)一步改進(jìn),該應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)方法還包括:將快速數(shù)據(jù)通道列表項(xiàng)手動(dòng)導(dǎo)入至路由器內(nèi)置的快速數(shù)據(jù)通道列表中。
作為本發(fā)明的進(jìn)一步改進(jìn),所述更改規(guī)則具體為:
當(dāng)報(bào)文從客戶端發(fā)送至服務(wù)器時(shí),將虛擬IP地址轉(zhuǎn)化為后端IP地址和/或?qū)⑻摂M端口號(hào)轉(zhuǎn)化為端口號(hào);
當(dāng)報(bào)文從服務(wù)器發(fā)送至客戶端時(shí),將后端IP地址轉(zhuǎn)化為虛擬IP地址和/或?qū)⒍丝谔?hào)轉(zhuǎn)換為虛擬端口號(hào)。
作為本發(fā)明的進(jìn)一步改進(jìn),使用路由器內(nèi)建的路由表將報(bào)文路由至符合快速數(shù)據(jù)通道列表的服務(wù)器中的步驟執(zhí)行完畢后,還包括路由器更新快速數(shù)據(jù)通道列表中的匹配計(jì)數(shù)字段的步驟。
作為本發(fā)明的進(jìn)一步改進(jìn),所述報(bào)文更改操作字段包括https解包操作、https封包操作、http頭修改操作、tcp頭修改操作或者udp頭修改操作。
為實(shí)現(xiàn)上述第二個(gè)發(fā)明目的,本發(fā)明還公開了一種應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)系統(tǒng),包括:
路由器、負(fù)載均衡系統(tǒng)、后端服務(wù)器群;其中,所述后端服務(wù)器群中包括若干服務(wù)器;
路由報(bào)文時(shí),路由器查找內(nèi)建于路由器的快速數(shù)據(jù)通道列表,并在報(bào)文與快速數(shù)據(jù)通道列表的至少一個(gè)快速數(shù)據(jù)通道列表項(xiàng)相匹配時(shí),按照快速數(shù)據(jù)通道列表中預(yù)先配置的更改規(guī)則更改報(bào)文,使用路由器內(nèi)建的路由表將報(bào)文路由至符合快速數(shù)據(jù)通道列表的服務(wù)器中,以在路由器與后端服務(wù)器群中的服務(wù)器之間建立快速數(shù)據(jù)通道。
作為本發(fā)明的進(jìn)一步改進(jìn),所述負(fù)載均衡系統(tǒng)基于快速數(shù)據(jù)通道協(xié)議在路由器內(nèi)建的快速數(shù)據(jù)通道列表中創(chuàng)建快速數(shù)據(jù)通道項(xiàng);所述快速數(shù)據(jù)通道協(xié)議包括openflow協(xié)議或者netconf協(xié)議。
作為本發(fā)明的進(jìn)一步改進(jìn),當(dāng)報(bào)文與快速數(shù)據(jù)通道列表項(xiàng)相匹配時(shí),報(bào)文被路由器直接路由至符合快速數(shù)據(jù)通道列表項(xiàng)的服務(wù)器中,并基于快速數(shù)據(jù)通道協(xié)議通知負(fù)載均衡系統(tǒng)。
作為本發(fā)明的進(jìn)一步改進(jìn),所述負(fù)載均衡系統(tǒng)包括若干負(fù)載均衡器,所述負(fù)載均衡器包括UDP負(fù)載均衡器、TCP負(fù)載均衡器、HTTP負(fù)載均衡器或者HTTPS負(fù)載均衡器。
作為本發(fā)明的進(jìn)一步改進(jìn),所述負(fù)載均衡系統(tǒng)由UDP負(fù)載均衡器、TCP負(fù)載均衡器、HTTP負(fù)載均衡器或者HTTPS負(fù)載均衡器中的一種或者多種負(fù)載均衡器組成。
作為本發(fā)明的進(jìn)一步改進(jìn),所述更改規(guī)則具體為:
當(dāng)報(bào)文從客戶端發(fā)送至服務(wù)器時(shí),將虛擬IP地址轉(zhuǎn)化為后端IP地址和/或?qū)⑻摂M端口號(hào)轉(zhuǎn)化為端口號(hào),以形成自路由器向服務(wù)器方向的上行數(shù)據(jù)流;
當(dāng)報(bào)文從服務(wù)器發(fā)送至客戶端時(shí),將后端IP地址轉(zhuǎn)化為虛擬IP地址和/或?qū)⒍丝谔?hào)轉(zhuǎn)換為虛擬端口號(hào);以形成自服務(wù)器向路由器方向的下行數(shù)據(jù)流。
作為本發(fā)明的進(jìn)一步改進(jìn),所述路由器被配置為物理路由器或者虛擬路由器。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:在本發(fā)明中,通過路由器和負(fù)載均衡系統(tǒng)的協(xié)調(diào)配合,并在報(bào)文與至少一個(gè)快速通道數(shù)據(jù)列表項(xiàng)相匹配時(shí)對(duì)報(bào)文進(jìn)行更改,使得大部分的報(bào)文流量可以繞過負(fù)載均衡系統(tǒng)而直接在路由器與后端服務(wù)器群之間建立雙向的快速數(shù)據(jù)通道,從而大大減輕了負(fù)載均衡系統(tǒng)的負(fù)擔(dān),并提高了網(wǎng)絡(luò)中報(bào)文的分發(fā)效率。
附圖說明
圖1為現(xiàn)有技術(shù)中的報(bào)文分發(fā)系統(tǒng)的拓?fù)鋱D;
圖2為本發(fā)明應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)系統(tǒng)的拓?fù)鋱D;
圖3為內(nèi)建于路由器內(nèi)的快速數(shù)據(jù)通道列表的示意圖;
圖4為本發(fā)明應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)方法的流程圖。
具體實(shí)施方式
下面結(jié)合各實(shí)施方式對(duì)本發(fā)明進(jìn)行詳細(xì)說明,但應(yīng)當(dāng)說明的是,這些實(shí)施方式并非對(duì)本發(fā)明的限制,本領(lǐng)域普通技術(shù)人員根據(jù)這些實(shí)施方式所作的功能、方法、或者結(jié)構(gòu)上的等效變換或替代,均屬于本發(fā)明的保護(hù)范圍之內(nèi)。
本說明書中所公開的一個(gè)或者多個(gè)實(shí)施例所揭示的方法、裝置、系統(tǒng)或者應(yīng)用均可以單獨(dú)或者組合的方式展現(xiàn)。所述模塊或者單元的劃分,僅僅是計(jì)算機(jī)內(nèi)部的一種邏輯功能的劃分,實(shí)際上也可為其他的劃分方式,例如多個(gè)單元或者模塊或者組件可以結(jié)合或者集成或者固化到另一個(gè)計(jì)算機(jī)系統(tǒng)或者計(jì)算機(jī)裝置中。
其中,計(jì)算機(jī)系統(tǒng)或者計(jì)算機(jī)裝置可以為本地物理計(jì)算機(jī),包括但不限于臺(tái)式機(jī)、膝上型計(jì)算機(jī)、服務(wù)器,也可被配置為分布式計(jì)算系統(tǒng)或者各種類型的云計(jì)算主機(jī)或者虛擬計(jì)算機(jī)集群服務(wù)器。
實(shí)施例一:
如圖4所示,本實(shí)施方式公開了一種應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)方法,并包括以下步驟:
S1、路由報(bào)文時(shí)查找內(nèi)建于路由器的快速數(shù)據(jù)通道列表;
S2、并在報(bào)文與快速數(shù)據(jù)通道列表的至少一個(gè)快速數(shù)據(jù)通道列表項(xiàng)相匹配時(shí),按照快速數(shù)據(jù)通道列表中預(yù)先配置的更改規(guī)則更改報(bào)文;
S3、使用路由器內(nèi)建的路由表將報(bào)文路由至符合快速數(shù)據(jù)通道列表的服務(wù)器中,以在路由器與后端服務(wù)器群中的服務(wù)器之間建立快速數(shù)據(jù)通道。
在本實(shí)施方式中,路由器1與服務(wù)器31或者服務(wù)器32之間所形成的快速數(shù)據(jù)通道311、快速數(shù)據(jù)通道321為雙向快速數(shù)據(jù)通道。路由器1指向服務(wù)器31的方向是報(bào)文發(fā)送過程,服務(wù)器31指向路由器1的方向是報(bào)文接收過程。
在本實(shí)施方式中,后端服務(wù)器群3中包括多個(gè)服務(wù)器,在圖2中僅示出兩個(gè)服務(wù)器,即服務(wù)器31及服務(wù)器32。路由器1與服務(wù)器31之間形成快速數(shù)據(jù)通道311,路由器1與服務(wù)器32之間形成快速數(shù)據(jù)通道321。該快速數(shù)據(jù)通道311及快速數(shù)據(jù)通道321均為雙向數(shù)據(jù)通道。
路由器1與負(fù)載均衡系統(tǒng)2之間形成常規(guī)數(shù)據(jù)通道111、負(fù)載均衡系統(tǒng)2與服務(wù)器31之間形成常規(guī)數(shù)據(jù)通道312、負(fù)載均衡系統(tǒng)2與服務(wù)器32之間形成常規(guī)數(shù)據(jù)通道322。報(bào)文(message)是數(shù)據(jù)塊,數(shù)據(jù)(data)在該報(bào)文快速分發(fā)系統(tǒng)中的傳遞過程通常以報(bào)文的形式進(jìn)行發(fā)送,因此在本說明書中報(bào)文與數(shù)據(jù)具有等同含義。
當(dāng)用戶在客戶端5發(fā)起和后端服務(wù)器群3建立連接的請(qǐng)求時(shí),報(bào)文首先到達(dá)路由器1。路由器1查找快速數(shù)據(jù)通道列表(參圖3所示),如果沒有發(fā)現(xiàn)匹配的快速數(shù)據(jù)通道列表項(xiàng)(即,報(bào)文的附加信息與快速數(shù)據(jù)通道列表中的某一個(gè)快速數(shù)據(jù)通道列表項(xiàng)不匹配),則按正常路由轉(zhuǎn)發(fā)到負(fù)載均衡系統(tǒng)2,以形成常規(guī)數(shù)據(jù)通道111。該快速數(shù)據(jù)通道列表內(nèi)建于路由器1內(nèi)。當(dāng)然,還可通過軟件的方式,將快速數(shù)據(jù)通道列表項(xiàng)手動(dòng)導(dǎo)入至路由器2內(nèi)置的快速通道列表中。
在圖3中,僅僅示范性地示出了五種匹配條件字段,即匹配條件A、匹配條件B、匹配條件C、匹配條件D、匹配條件E。每一個(gè)匹配條件對(duì)應(yīng)一個(gè)報(bào)文更改操作字段、一個(gè)目的地服務(wù)器地址字段以及相應(yīng)的匹配計(jì)數(shù)字段。匹配計(jì)數(shù)字段記錄了報(bào)文在通過路由器1時(shí)符合該快速數(shù)據(jù)通道列表項(xiàng)的歷史匹配數(shù)量。
負(fù)載均衡系統(tǒng)2接到報(bào)文,按照負(fù)載均衡規(guī)則轉(zhuǎn)發(fā)到后端服務(wù)器群3中所指定的一個(gè)服務(wù)器。負(fù)載均衡系統(tǒng)2如果發(fā)現(xiàn)這個(gè)報(bào)文的后繼報(bào)文可以使用路由器快速通道特性,則通過特定的快速數(shù)據(jù)通道協(xié)議,發(fā)送一條快速數(shù)據(jù)通道列表項(xiàng)到路由器1的快速數(shù)據(jù)通道列表中。
具體的,該特定的快速數(shù)據(jù)通道協(xié)議包括但不限于openflow協(xié)議或者netconf協(xié)議或者用戶基于報(bào)文快速分發(fā)系統(tǒng)為目的的自定義協(xié)議等。openflow協(xié)議實(shí)現(xiàn)了報(bào)文轉(zhuǎn)發(fā)和路由控制的分離??刂破骺梢酝ㄟ^事先規(guī)定好的接口操作來控制openflow交換機(jī)中的流表,從而達(dá)到控制數(shù)據(jù)轉(zhuǎn)發(fā)的目的。netconf協(xié)議的命令集由讀取、修改設(shè)備配置數(shù)據(jù),以及讀取狀態(tài)數(shù)據(jù)的一系列命令組成。命令通過RPCs進(jìn)行溝通,并以RPC(Remote Procedure Call Protocol,遠(yuǎn)程過程調(diào)用協(xié)議)回復(fù)來應(yīng)答。一個(gè)RPC回復(fù)必須響應(yīng)一個(gè)RPC才能返回。一個(gè)配置操作必須由一系列RPC組成,每個(gè)都有與其對(duì)應(yīng)的應(yīng)答RPC。由于其采用面向無(wú)連接的UDP傳輸協(xié)議。
與SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)使用無(wú)連接的UDP作為傳輸協(xié)議不同,netconf協(xié)議是面向連接的,它要求通信端口之間永久性的連接,而且這種連接必須提供可靠的,順序的數(shù)據(jù)傳輸。在傳輸層,netconf協(xié)議制定了RFC4742、RFC4743和RFC4744分別給出了向傳輸協(xié)議SSH、SOAP和BEEP映射的實(shí)現(xiàn)方案。這些安全協(xié)議通過加密和認(rèn)證等方法來保證網(wǎng)絡(luò)連接的安全性。
如果在快速數(shù)據(jù)通道列表中找到了匹配的快速數(shù)據(jù)通道列表項(xiàng)(即,報(bào)文的附加信息與快速數(shù)據(jù)通道列表中的某一個(gè)快速數(shù)據(jù)通道列表項(xiàng)相匹配),則按快速數(shù)據(jù)通道列表項(xiàng)中的預(yù)先配置的更改規(guī)則更改報(bào)文。
在本實(shí)施方式中,報(bào)文從客戶端5經(jīng)由路由器1繞開負(fù)載均衡系統(tǒng)2發(fā)送至服務(wù)器的過程以及報(bào)文從服務(wù)器繞開負(fù)載系統(tǒng)2并經(jīng)由路由器1發(fā)送至客戶端5的過程,若報(bào)文在快速數(shù)據(jù)通道列表中找到了匹配的快速數(shù)據(jù)通道列表項(xiàng)則均可按照預(yù)先配置的更改規(guī)則更改報(bào)文,以報(bào)文在接收或者發(fā)送的過程中所形成的上下行數(shù)據(jù)繞開負(fù)載均衡系統(tǒng)2,以降低負(fù)載均衡系統(tǒng)2的開銷及負(fù)載。
例如下面舉例中的“把進(jìn)入服務(wù)器的報(bào)文中的cip/cport/vip/vport轉(zhuǎn)換成rip/rport/bip/bport”然后按照快速數(shù)據(jù)通道列表項(xiàng)中的目的地服務(wù)器地址利用正常的路由表進(jìn)行路由,以實(shí)現(xiàn)對(duì)報(bào)文的輕量化路由。
路由表是一個(gè)存儲(chǔ)在路由器或者聯(lián)網(wǎng)計(jì)算機(jī)中的電子表格(文件)或類數(shù)據(jù)庫(kù)。路由表存儲(chǔ)著指向特定網(wǎng)絡(luò)地址的路徑(在有些情況下,還記錄有路徑的路由度量值)。路由表中含有網(wǎng)絡(luò)周邊的拓?fù)湫畔?。路由表建立的主要目?biāo)是為了實(shí)現(xiàn)路由協(xié)議和靜態(tài)路由選擇。路由器1更新該記錄的匹配計(jì)數(shù),并在系統(tǒng)預(yù)先設(shè)置的時(shí)候,可以通過參數(shù)配置,例如每5秒更新一次或每1萬(wàn)個(gè)報(bào)文更新一次,使用快速數(shù)據(jù)通道協(xié)議來通知負(fù)載均衡系統(tǒng)2,以便負(fù)載均衡系統(tǒng)2跟蹤后端服務(wù)器群3的負(fù)載,從而實(shí)現(xiàn)動(dòng)態(tài)調(diào)節(jié)。如圖2所示,該負(fù)載均衡系統(tǒng)2和后端服務(wù)器群3組成了一個(gè)高可用服務(wù)器集群。
在本實(shí)施方式中,路由器1被配置為物理路由器。該快速數(shù)據(jù)通道列表包括至少一個(gè)快速數(shù)據(jù)通道列表項(xiàng)。如圖3所示,一個(gè)快速數(shù)據(jù)通道列表項(xiàng)包括匹配條件字段、報(bào)文更改操作字段、目的地服務(wù)器地址字段、匹配計(jì)數(shù)字段。該匹配條件字段可由源IP地址、源端口、目的IP地址、目的端口、傳輸層協(xié)議、MAC源地址、MAC目的地地址、報(bào)文優(yōu)先級(jí)、http會(huì)話ID、自定義字段或者路由端口中的至少一種變量所組成。
上述所列舉的多種變量可采用任意形式相互組合表達(dá),以形成多種形式的匹配條件字段,從而形成一元組形式的匹配條件字段、二元組的匹配條件字段、三元組的匹配條件字段、四元組的匹配條件字段、五元組的匹配條件字段、六元組的匹配條件字段、七元組匹配條件字段或者八元組的匹配條件字段。
具體的,在本實(shí)施方式中,該匹配條件字段是五元組。五元組能夠區(qū)分用戶所發(fā)起的不同會(huì)話,并且對(duì)應(yīng)的會(huì)話是唯一的。報(bào)文更改操作字段是指,路由器1對(duì)符合該快速數(shù)據(jù)通道列表中某一快速數(shù)據(jù)通道列表項(xiàng)的報(bào)文需要做的更改操作,包括但不限于https解包操作、https封包操作、http頭修改操作、tcp頭修改操作、udp頭修改操作等。
目的地址(bip),或者稱之為“后端IP地址”,其是最終提供服務(wù)且位于后端服務(wù)器群3中的具體服務(wù)器的ip地址(物理ip地址)。路由器1重用了正常的路由機(jī)制,按照目的地址進(jìn)行報(bào)文的正常路由轉(zhuǎn)發(fā),從而形成常規(guī)數(shù)據(jù)通道312及常規(guī)數(shù)據(jù)通道322。匹配計(jì)數(shù)統(tǒng)計(jì)有多少個(gè)報(bào)文或字節(jié)匹配到該快速數(shù)據(jù)通道列表中的某一快速數(shù)據(jù)通道列表項(xiàng)。
優(yōu)選的,在本實(shí)施方式中,在使用路由器1內(nèi)建的路由表將報(bào)文路由至符合快速數(shù)據(jù)通道列表的服務(wù)器中的步驟執(zhí)行完畢后,還包括路由器更新快速數(shù)據(jù)通道列表中的匹配計(jì)數(shù)字段的步驟。
在傳統(tǒng)的報(bào)文分發(fā)方法中,路由器1(無(wú)論是物理形態(tài)還是虛擬形態(tài))和負(fù)載均衡系統(tǒng)2是兩種不同的網(wǎng)絡(luò)功能。一般來說報(bào)文先通過路由器1,然后到達(dá)負(fù)載均衡系統(tǒng)2的入口。負(fù)載均衡系統(tǒng)2可以由多個(gè)負(fù)載均衡器一起組成一個(gè)統(tǒng)一的對(duì)外服務(wù)單元。負(fù)載均衡系統(tǒng)2將入口的報(bào)文所形成的流量按照不同的算法和需求,均勻的分布到不同的后端服務(wù)器群3。此種技術(shù)方案的缺陷在于,報(bào)文在收發(fā)過程中所有的流量都必須通過路由器1、負(fù)載均衡系統(tǒng)2和后端服務(wù)器群3這三個(gè)節(jié)點(diǎn)。因此,一旦在某個(gè)節(jié)點(diǎn)出現(xiàn)宕機(jī)或者崩潰,很容易導(dǎo)致發(fā)生網(wǎng)絡(luò)阻塞。
然而,在本實(shí)施方式中,在本發(fā)明中,可通過路由器1和負(fù)載均衡系統(tǒng)2的協(xié)調(diào)配合,使大部分報(bào)文分發(fā)過程中所形成的數(shù)據(jù)流量可以繞過負(fù)載均衡系統(tǒng)2,從而大大減輕負(fù)載均衡系統(tǒng)2的負(fù)擔(dān),并實(shí)現(xiàn)了網(wǎng)絡(luò)中的報(bào)文分發(fā)效率。
具體來講,快速數(shù)據(jù)通道列表包括一個(gè)或多個(gè)快速數(shù)據(jù)通道列表項(xiàng)。每個(gè)快速數(shù)據(jù)通道列表項(xiàng)包括:匹配條件字段、報(bào)文更改操作字段、目的地服務(wù)器地址字段、匹配計(jì)數(shù)字段。其中,匹配條件字段是指報(bào)文匹配該快速數(shù)據(jù)通道列表項(xiàng)需要滿足的條件。這些條件根據(jù)路由器實(shí)現(xiàn)報(bào)文路由時(shí)所依據(jù)的路由表的不同,可能會(huì)支持不同的類型。
在本實(shí)施方式中,所述負(fù)載均衡器2包括UDP負(fù)載均衡器、TCP負(fù)載均衡器、HTTP負(fù)載均衡器或者HTTPS負(fù)載均衡器。優(yōu)選的,該負(fù)載均衡系統(tǒng)2由UDP負(fù)載均衡器、TCP負(fù)載均衡器、HTTP負(fù)載均衡器或者HTTPS負(fù)載均衡器中的一種或者多種負(fù)載均衡器組成。
接下來,以由UDP負(fù)載均衡器所組成的負(fù)載均衡系統(tǒng)2以及由HTTP負(fù)載均衡器所組成的負(fù)載均衡系統(tǒng)2為例,詳細(xì)說明本專利所涉及的具體的報(bào)文在接收過程中或者報(bào)文分發(fā)過程中的具體過程。
接下來對(duì)幾個(gè)技術(shù)名詞進(jìn)行界定:
cip(client ip):客戶端5的IP地址;
vip(virtual ip):虛擬IP地址,服務(wù)器31、32在負(fù)載均衡系統(tǒng)2中對(duì)客戶端5所顯示的虛擬ip地址;
bip(backend ip):服務(wù)器31、32的IP地址,即服務(wù)器31、32的物理IP地址;
bport(backend port):服務(wù)器31、32的端口號(hào),即服務(wù)器31、32的物理端口號(hào)
cport(client port):客戶端5的端口號(hào);
vport(virtual port):虛擬端口號(hào),服務(wù)器31、32在負(fù)載均衡系統(tǒng)2中對(duì)客戶端5所顯示的虛擬端口號(hào)。
在本實(shí)施方式中,報(bào)文的更改規(guī)則具體為:負(fù)載均衡系統(tǒng)2建立所述客戶端5和所述服務(wù)器(在此情形下該服務(wù)器是明確且唯一的,例如服務(wù)器31)之間的會(huì)話,并分別將所述會(huì)話插入至第一哈希表和第二哈希表中,其中,所述第一哈希表包括所述虛擬IP地址(vip)和/或虛擬端口號(hào)(vport)與所述客戶端5的IP地址(cip)和/或端口號(hào)(cport)之間的對(duì)應(yīng)關(guān)系,所述第二哈希表包括所述后端IP地址(bip)和/或端口號(hào)(bport)與所述服務(wù)器的IP地址(vip)和/或端口號(hào)(vport)之間的對(duì)應(yīng)關(guān)系;
當(dāng)報(bào)文從客戶端5發(fā)送至服務(wù)器31(或者服務(wù)器32)時(shí),將虛擬IP地址(vip)轉(zhuǎn)化為后端IP地址(bip)和/或?qū)⑻摂M端口號(hào)(vport)轉(zhuǎn)化為端口號(hào)(bport),以形成自路由器1向服務(wù)器31(或者服務(wù)器32)方向的上行數(shù)據(jù)流;
當(dāng)報(bào)文從服務(wù)器31(或者服務(wù)器32)發(fā)送至客戶端5時(shí),將后端IP地址(bip)轉(zhuǎn)化為虛擬IP地址(vip)和/或?qū)⒍丝谔?hào)(bport)轉(zhuǎn)換為虛擬端口號(hào)(vport);以形成自服務(wù)器31(或者服務(wù)器32)向路由器1方向的下行數(shù)據(jù)流。
由UDP負(fù)載均衡器所組成的負(fù)載均衡系統(tǒng)2中報(bào)文分發(fā)的具體流程及實(shí)現(xiàn)過程,可參照中國(guó)發(fā)明專利CN103491053A所示。在CN103491053A中,負(fù)載均衡系統(tǒng)最終會(huì)把進(jìn)入服務(wù)器的報(bào)文中的cip/cport/vip/vport轉(zhuǎn)換成rip/rport/bip/bport;而把從服務(wù)器中出去的報(bào)文中的rip/rport/bip/bport轉(zhuǎn)換成cip/cport/vip/vport。
然而,在本實(shí)施方式中,負(fù)載均衡系統(tǒng)2將會(huì)在對(duì)應(yīng)的路由器1中,添加兩條快速數(shù)據(jù)通道列表項(xiàng)。
一條快速數(shù)據(jù)通道列表項(xiàng)對(duì)應(yīng)從客戶端5進(jìn)入服務(wù)器的報(bào)文,具體為,將cip/cport/vip/vport轉(zhuǎn)換成cip/cport/bip/bport??焖贁?shù)據(jù)通道列表項(xiàng)中的匹配條件為:cip/cport/vip/vport和udp傳輸層協(xié)議;報(bào)文更改動(dòng)作為改變udp頭中的目的port值為bport(即vport更改為bport);目的地址為bip(即vip更改為bip)。這條快速數(shù)據(jù)通道列表項(xiàng)將使路由器1將客戶自客戶端5發(fā)送的報(bào)文繞開負(fù)載均衡系統(tǒng)2,并通過路由器1內(nèi)置的路由表直接轉(zhuǎn)發(fā)到的后端服務(wù)器群3中所指定的服務(wù)器31(或者服務(wù)器32)中,且該服務(wù)器31的物理ip地址為客戶端5所發(fā)起請(qǐng)求所所包含的vip所關(guān)聯(lián)的bip。
另一條對(duì)應(yīng)從服務(wù)器中出去并達(dá)到客戶端5的報(bào)文。將bip/bport/cip/cport轉(zhuǎn)換成vip/vport/cip/cport??焖贁?shù)據(jù)通道列表項(xiàng)中的匹配條件為:bip/bport/cip/cport和傳輸層協(xié)議為udp;報(bào)文更改動(dòng)作為改變udp頭中的源port值為vport(即bport更改為vport);源地址為vip(即bip更改為vip)。這條快速數(shù)據(jù)通道列表項(xiàng)將使路由器1將后端服務(wù)器群3出去的報(bào)文的源地址改成虛擬IP地址,從而客戶端5側(cè)只會(huì)看到對(duì)外所顯示的服務(wù)器31(或者服務(wù)器32)的虛擬IP地址。
HTTP負(fù)載均衡器所構(gòu)成的負(fù)載均衡系統(tǒng)2實(shí)現(xiàn)報(bào)文的分發(fā)過程與上述UDP負(fù)載均衡器所構(gòu)成的負(fù)載均衡系統(tǒng)2對(duì)報(bào)文實(shí)現(xiàn)分發(fā)的流程大致類似。也會(huì)有兩條快速數(shù)據(jù)通道列表項(xiàng)分別對(duì)應(yīng)進(jìn)入服務(wù)器和從服務(wù)器出去的報(bào)文。不同之處主要在于,在此種應(yīng)用場(chǎng)景下僅支持http協(xié)議。例如,在這兩條快速數(shù)據(jù)通道列表項(xiàng)中的報(bào)文更改動(dòng)作,需要支持修改http頭,以便由路由器1直接轉(zhuǎn)發(fā)http包。
實(shí)施例二:
在本實(shí)施方式中公開了一種應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)系統(tǒng),該報(bào)文快速分發(fā)系統(tǒng)包括:路由器1、負(fù)載均衡系統(tǒng)2、后端服務(wù)器群3;其中,所述后端服務(wù)器群3中包括若干服務(wù)器(例如服務(wù)器31及服務(wù)器32);路由器1被配置為物理路由器或者虛擬路由器,并更優(yōu)選為物理路由器。
路由報(bào)文時(shí),路由器1查找內(nèi)建于路由器的快速數(shù)據(jù)通道列表(參圖3所示),并在報(bào)文與快速數(shù)據(jù)通道列表的至少一個(gè)快速數(shù)據(jù)通道列表項(xiàng)相匹配時(shí),按照快速數(shù)據(jù)通道列表中預(yù)先配置的更改規(guī)則更改報(bào)文,使用路由器1內(nèi)建的路由表將報(bào)文路由至符合快速數(shù)據(jù)通道列表的服務(wù)器(例如服務(wù)器31及服務(wù)器32)中,以在路由器1與后端服務(wù)器群3中的服務(wù)器之間建立快速數(shù)據(jù)通道。
當(dāng)報(bào)文與快速數(shù)據(jù)通道列表中的所有快速數(shù)據(jù)通道列表項(xiàng)均不匹配時(shí),報(bào)文會(huì)從路由器1按照正常路由轉(zhuǎn)發(fā)。如果報(bào)文到達(dá)負(fù)載均衡系統(tǒng)2,而負(fù)載均衡系統(tǒng)2又通過與路由器1的快速數(shù)據(jù)通道列表比較,如果發(fā)現(xiàn)報(bào)文符合過路由器1內(nèi)建的快速數(shù)據(jù)通道列表中的某一個(gè)快速數(shù)據(jù)通道列表項(xiàng),則加速處理;如果不符合,則負(fù)載均衡系統(tǒng)2會(huì)通過快速數(shù)據(jù)通道協(xié)議創(chuàng)建快速數(shù)據(jù)通道列表項(xiàng),并保存至路由器1內(nèi)置的快速數(shù)據(jù)通道列表中。
具體的,在本實(shí)施方式中,該負(fù)載均衡系統(tǒng)2基于快速數(shù)據(jù)通道協(xié)議在路由器1內(nèi)建的快速數(shù)據(jù)通道列表中創(chuàng)建快速數(shù)據(jù)通道列表。快速數(shù)據(jù)通道協(xié)議包括openflow協(xié)議或者netconf協(xié)議。報(bào)文與快速數(shù)據(jù)通道列表項(xiàng)相匹配時(shí),報(bào)文被路由器1直接路由至符合快速數(shù)據(jù)通道列表的服務(wù)器中,并通知負(fù)載均衡系統(tǒng)2,并形成消息隊(duì)列通道,該消息隊(duì)列通道指向負(fù)載均衡系統(tǒng)2。
該負(fù)載均衡系統(tǒng)2包括若干負(fù)載均衡器,所述負(fù)載均衡器包括UDP負(fù)載均衡器、TCP負(fù)載均衡器、HTTP負(fù)載均衡器或者HTTPS負(fù)載均衡器。優(yōu)選的,所述負(fù)載均衡系統(tǒng)由UDP負(fù)載均衡器、TCP負(fù)載均衡器、HTTP負(fù)載均衡器或者HTTPS負(fù)載均衡器中的一種或者多種負(fù)載均衡器組成。
在本實(shí)施方式中,報(bào)文的更改規(guī)則具體為:負(fù)載均衡系統(tǒng)2建立所述客戶端5和所述服務(wù)器(在此情形下該服務(wù)器是明確且指定的)之間的會(huì)話,并分別將所述會(huì)話插入至第一哈希表和第二哈希表中,其中,所述第一哈希表包括所述虛擬IP地址(vip)和/或虛擬端口號(hào)(vport)與所述客戶端5的IP地址(cip)和/或端口號(hào)(cport)之間的對(duì)應(yīng)關(guān)系,所述第二哈希表包括所述后端IP地址(bip)和/或端口號(hào)(bport)與所述服務(wù)器的IP地址(vip)和/或端口號(hào)(vport)之間的對(duì)應(yīng)關(guān)系;
當(dāng)報(bào)文從客戶端5發(fā)送至服務(wù)器31(或者服務(wù)器32)時(shí),將虛擬IP地址(vip)轉(zhuǎn)化為后端IP地址(bip)和/或?qū)⑻摂M端口號(hào)(vport)轉(zhuǎn)化為端口號(hào)(bport),以形成自路由器1向服務(wù)器31(或者服務(wù)器32)方向的上行數(shù)據(jù)流;
當(dāng)報(bào)文從服務(wù)器31(或者服務(wù)器32)發(fā)送至客戶端5時(shí),將后端IP地址(bip)轉(zhuǎn)化為虛擬IP地址(vip)和/或?qū)⒍丝谔?hào)(bport)轉(zhuǎn)換為虛擬端口號(hào)(vport);以形成自服務(wù)器31(或者服務(wù)器32)向路由器1方向的下行數(shù)據(jù)流。
通過將cip/cport/vip/vport轉(zhuǎn)換成cip/cport/bip/bport這種報(bào)文更改規(guī)則,可直接引導(dǎo)報(bào)文通過路由器1繞開負(fù)載均衡系統(tǒng)2,而直接通過快速數(shù)據(jù)通道311或者快速數(shù)據(jù)通道321,從而將報(bào)文直接發(fā)送至服務(wù)器31或者服務(wù)器32。當(dāng)cip/cport/bip/bport轉(zhuǎn)換成cip/cport/vip/vport時(shí),可直接引導(dǎo)報(bào)文繞開負(fù)載均衡系統(tǒng)2而直接到達(dá)路由器1,并通過云4或者其他類型的網(wǎng)絡(luò)向客戶端5推送應(yīng)用或者數(shù)據(jù)。
服務(wù)器31或者服務(wù)器32中包含有存儲(chǔ)介質(zhì),用于實(shí)現(xiàn)對(duì)數(shù)據(jù)的存儲(chǔ)。本實(shí)施方式未盡的技術(shù)方案請(qǐng)參實(shí)施例一所述,在此不再贅述。
根據(jù)本發(fā)明所示出的一種應(yīng)用于負(fù)載均衡系統(tǒng)的報(bào)文快速分發(fā)方法及其報(bào)文快速分發(fā)系統(tǒng),可實(shí)現(xiàn)從客戶端5的物理地址到后端服務(wù)器群3中的指定的服務(wù)器之間的雙向的快速數(shù)據(jù)通道,從而可以開展與客戶端5發(fā)起的會(huì)話所指定的服務(wù)器的服務(wù)。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、非易失性存儲(chǔ)器(NV-Memory)磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
上文所列出的一系列的詳細(xì)說明僅僅是針對(duì)本發(fā)明的可行性實(shí)施方式的具體說明,它們并非用以限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實(shí)施方式或變更均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。
此外,應(yīng)當(dāng)理解,雖然本說明書按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個(gè)整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。