專利名稱:一種全局負(fù)載均衡中的重定向方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種全局負(fù)載均衡中的重定向方法和裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)業(yè)務(wù)量的提高,以及網(wǎng)絡(luò)訪問量和數(shù)據(jù)流量的快速增長(zhǎng),現(xiàn)有網(wǎng)絡(luò)的各 個(gè)核心部分的處理能力和計(jì)算強(qiáng)度也相應(yīng)地增大,使得單一的服務(wù)器設(shè)備根本無法承擔(dān)全 部的網(wǎng)絡(luò)任務(wù)。針對(duì)上述情況,網(wǎng)絡(luò)技術(shù)領(lǐng)域提出了負(fù)載均衡(Load Balance,以下簡(jiǎn)稱 LB)技術(shù),以擴(kuò)展現(xiàn)有網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高 網(wǎng)絡(luò)的靈活性和可用性。按照負(fù)載均衡設(shè)備的網(wǎng)絡(luò)部署的不同,負(fù)載均衡技術(shù)可以包括局域負(fù)載均衡 (Local Load Balance,以下簡(jiǎn)稱:LLB)和全局負(fù)載均衡(Global Load Balance,以下簡(jiǎn)稱 GLB)。如圖1所示,為現(xiàn)有技術(shù)中的局域負(fù)載均衡示意圖。服務(wù)器集群集中在一個(gè)物理 位置,負(fù)載均衡設(shè)備位于服務(wù)器集群外側(cè),對(duì)客戶端向服務(wù)器集群發(fā)起的服務(wù)訪問進(jìn)行分 發(fā)處理。如圖2所示,為現(xiàn)有技術(shù)中的全局負(fù)載均衡示意圖。服務(wù)器集群分布在不同地理 位置,每個(gè)服務(wù)器集群的前端均部署一臺(tái)GLB設(shè)備,各個(gè)GLB設(shè)備之間協(xié)同工作,對(duì)來自客 戶端的服務(wù)訪問進(jìn)行分發(fā)。全局負(fù)載均衡能夠?yàn)橛脩籼峁┩耆该鞯姆?wù),使用戶無需關(guān) 心服務(wù)器集群的物理分布,能夠有效避免服務(wù)器集群的單點(diǎn)失效,通過就近訪問的方式提 高服務(wù)器集群的響應(yīng)速度。相對(duì)于局域負(fù)載均衡而言,全局負(fù)載均衡更加可靠,能夠向訪問 用戶提供更好的服務(wù)體驗(yàn)。全局負(fù)載均衡使用的策略包括HTTP (Hyper Text Transfer Protocol,超文本傳 輸協(xié)議)重定向技術(shù),該技術(shù)可以通過基于HTTP協(xié)議的重定向報(bào)文將用戶流量引導(dǎo)到最優(yōu) 的站點(diǎn)。如圖3所示,為現(xiàn)有技術(shù)中的全局負(fù)載均衡的HTTP重定向示意圖??蛻舳讼蚍?wù) 器集群I發(fā)送get (獲取)請(qǐng)求;LB設(shè)備I接收到get請(qǐng)求后,發(fā)現(xiàn)本地服務(wù)器全部故障,需 要將get請(qǐng)求重定向到服務(wù)器集群II上,于是向客戶端返回HTTP重定向報(bào)文(如圖3中 的實(shí)線流程所示);客戶端收到重定向報(bào)文后,向重定向目的地址發(fā)起新的HTTP請(qǐng)求(如 圖3中的虛線流程所示)。然而,在上述全局負(fù)載均衡的HTTP重定向過程中,會(huì)出現(xiàn)在多個(gè)站點(diǎn)間重復(fù)重定 向的問題。例如,當(dāng)服務(wù)器集群I與服務(wù)器集群II都發(fā)生故障時(shí),可能會(huì)出現(xiàn)get請(qǐng)求從 服務(wù)器集群I重定向到服務(wù)器集群II,又從服務(wù)器集群II重定向回服務(wù)器集群I,導(dǎo)致業(yè) 務(wù)不可用。為解決上述問題,現(xiàn)有系統(tǒng)通過在站點(diǎn)之間增加私有協(xié)議交互的方式,以規(guī)避重 復(fù)重定向的問題。例如,全局負(fù)載均衡系統(tǒng)中存在三個(gè)服務(wù)器集群,分別為服務(wù)器集群I、 服務(wù)器集群II和服務(wù)器集群III。三個(gè)服務(wù)器集群之間進(jìn)行私有協(xié)議進(jìn)行通信,分別報(bào)告各自的可用服務(wù)器個(gè)數(shù)。當(dāng)服務(wù)器集群I中的所有服務(wù)器發(fā)生故障,需要選擇重定向站點(diǎn) 時(shí),會(huì)在存在可用服務(wù)器的站點(diǎn)中選擇一個(gè)最優(yōu)的站點(diǎn),如果服務(wù)器集群II中沒有可用服 務(wù)器,服務(wù)器集群III中存在可用服務(wù)器,則將get請(qǐng)求直接重定向到服務(wù)器集群III。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題由于站點(diǎn)之間的私有協(xié)議通信需要一定的通信時(shí)間,而在該通信時(shí)間內(nèi)會(huì)發(fā)生短 時(shí)間的重定向選擇錯(cuò)誤。而在訪問高峰時(shí)期,對(duì)于需要提供高可靠性的服務(wù)商,短時(shí)間的選 擇錯(cuò)誤也是無法接受的。因此,現(xiàn)有技術(shù)無法解決全局負(fù)載均衡中的重復(fù)重定向問題,無法 保證全局負(fù)載均衡業(yè)務(wù)的可靠性。
發(fā)明內(nèi)容
本發(fā)明提供 一種全局負(fù)載均衡中的重定向方法和裝置,用以解決全局負(fù)載均衡中 的重復(fù)重定向問題。本發(fā)明提出一種全局負(fù)載均衡中的重定向方法,包括負(fù)載均衡設(shè)備接收來自客戶端的超文本傳輸協(xié)議HTTP請(qǐng)求,獲取所述HTTP請(qǐng)求 中攜帶的向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息;所述負(fù)載均衡設(shè)備從站點(diǎn)列表選擇除所述發(fā)送過重定向報(bào)文的站點(diǎn)之外的站點(diǎn), 作為本次的重定向站點(diǎn);所述負(fù)載均衡設(shè)備根據(jù)選擇出的重定向站點(diǎn)生成重定向報(bào)文,其中,所述負(fù)載均 衡設(shè)備將其所在站點(diǎn)的信息和獲取到的發(fā)送過重定向報(bào)文的站點(diǎn)的信息作為發(fā)送過重定 向報(bào)文的站點(diǎn)的信息添加到所述重定向報(bào)文中;所述負(fù)載均衡設(shè)備將所述重定向報(bào)文發(fā)送到所述客戶端。其中,所述客戶端通過以下方式生成HTTP請(qǐng)求所述客戶端接收重定向報(bào)文,獲取所述重定向報(bào)文中攜帶的統(tǒng)一資源定位符URL 信息,所述URL信息中的查詢query部分記錄有向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的 fn息;所述客戶端生成包含所述URL信息的HTTP請(qǐng)求。其中,當(dāng)所述HTTP請(qǐng)求中沒有攜帶向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信 息時(shí),所述負(fù)載均衡設(shè)備從所述站點(diǎn)列表中選擇本次的重定向站點(diǎn);所述負(fù)載均衡設(shè)備根據(jù)選擇出的重定向站點(diǎn)生成重定向報(bào)文,其中,所述負(fù)載均 衡設(shè)備將其所在站點(diǎn)的信息作為向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息添加到所 述重定向報(bào)文中;所述負(fù)載均衡設(shè)備將所述重定向報(bào)文發(fā)送到所述客戶端。其中,所述負(fù)載均衡設(shè)備將其所在站點(diǎn)的信息和獲取到的發(fā)送過重定向報(bào)文的站 點(diǎn)的信息作為發(fā)送過重定向報(bào)文的站點(diǎn)的信息添加到所述重定向報(bào)文中,具體為所述負(fù)載均衡設(shè)備從接收到的客戶端的HTTP請(qǐng)求中獲取URL信息,并將該負(fù)載均 衡設(shè)備所在站點(diǎn)的信息添加到該URL信息中用于記錄向所述客戶端發(fā)送過重定向報(bào)文的 站點(diǎn)的信息的query部分;所述負(fù)載均衡設(shè)備根據(jù)該添加了站點(diǎn)信息的URL信息生成所述重定向報(bào)文的URL fn息ο
其中,所述站點(diǎn)的信息包括所述站點(diǎn)的IP地址、站點(diǎn)標(biāo)識(shí)和根據(jù)IP地址生成的用 于唯一標(biāo)識(shí)所述站點(diǎn)的標(biāo)識(shí)參數(shù)中的至少一種。本發(fā)明還提出一種負(fù)載均衡設(shè)備,包括獲取模塊,用于接收來自客戶端的HTTP請(qǐng)求,獲取所述HTTP請(qǐng)求中攜帶的向所述 客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息;選擇模塊,用于從站點(diǎn)列表選擇除所述發(fā)送過重定向報(bào)文的站點(diǎn)之外的站點(diǎn),作 為本次的重定向站點(diǎn);生成模塊,用于根據(jù)所述選擇模塊選擇出的重定向站點(diǎn)生成重定向報(bào)文,其中,所 述生成模塊將所述負(fù)載均衡設(shè)備所在站點(diǎn)的信息和獲取到的發(fā)送過重定向報(bào)文的站點(diǎn)的 信息作為發(fā)送過重定向報(bào)文的站點(diǎn)的信息添加到所述重定向報(bào)文中;發(fā)送模塊,用于將所述生成模塊生成的重定向報(bào)文發(fā)送到所述客戶端。其中,所述選擇模塊,還用于在所述HTTP請(qǐng)求中沒有攜帶向所述客戶端發(fā)送過重 定向報(bào)文的站點(diǎn)的信息時(shí),從所述站點(diǎn)列表中選擇本次的重定向站點(diǎn);所述生成模塊,還用于根據(jù)所述選擇模塊選擇出的重定向站點(diǎn)生成重定向報(bào)文, 其中,所述生成模塊將所述負(fù)載均衡設(shè)備所在站點(diǎn)的信息作為向所述客戶端發(fā)送過重定向 報(bào)文的站點(diǎn)的信息添加到所述重定向報(bào)文中。其中,所述生成模塊,具體用于從接收到的客戶端的HTTP請(qǐng)求中獲取URL信息,并 將所述負(fù)載均衡設(shè)備所在站點(diǎn)的信息添加到該URL信息中用于記錄向所述客戶端發(fā)送過 重定向報(bào)文的站點(diǎn)的信息的query部分;根據(jù)該添加了站點(diǎn)信息的URL信息生成所述重定 向報(bào)文的URL信息。其中,所述站點(diǎn)的信息包括所述站點(diǎn)的IP地址、站點(diǎn)標(biāo)識(shí)和根據(jù)IP地址生成的用 于唯一標(biāo)識(shí)所述站點(diǎn)的標(biāo)識(shí)參數(shù)中的至少一種。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)根據(jù)客戶端的HTTP請(qǐng)求得到向客戶端發(fā) 送過重定向報(bào)文的站點(diǎn)的信息,并根據(jù)該站點(diǎn)的信息選擇重定向站點(diǎn),避免了全局負(fù)載均 衡的重定向過程中出現(xiàn)的不同服務(wù)器集群間的重復(fù)重定向,提高全局負(fù)載均衡業(yè)務(wù)的可用 性和可靠性。
圖1為現(xiàn)有技術(shù)中的局域負(fù)載均衡示意圖;圖2為現(xiàn)有技術(shù)中的全局負(fù)載均衡示意圖;圖3為現(xiàn)有技術(shù)中的全局負(fù)載均衡的HTTP重定向示意圖;圖4為本發(fā)明實(shí)施例中的全局負(fù)載均衡的HTTP重定向示意圖;圖5為本發(fā)明實(shí)施例中的全局負(fù)載均衡中的重定向方法流程圖;圖6為本發(fā)明實(shí)施例中的負(fù)載均衡設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供的技術(shù)方案中,負(fù)載均衡設(shè)備接收來自客戶端的超文本傳輸協(xié) 議HTTP請(qǐng)求,獲取該HTTP請(qǐng)求中攜帶的向客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息;負(fù)載均 衡設(shè)備從站點(diǎn)列表選擇除發(fā)送過重定向報(bào)文的站點(diǎn)之外的站點(diǎn),作為本次的重定向站點(diǎn);負(fù)載均衡設(shè)備根據(jù)選擇出的重定向站點(diǎn)生成重定向報(bào)文,其中,負(fù)載均衡設(shè)備將其所在站 點(diǎn)的信息和獲取到的發(fā)送過重定向報(bào)文的站點(diǎn)的信息作為發(fā)送過重定向報(bào)文的站點(diǎn)的信 息添加到重定向報(bào)文中,并將該重定向報(bào)文發(fā)送到客戶端,從而避免全局負(fù)載均衡中的重 復(fù)重定向。下面將結(jié)合本發(fā)明中的附圖,對(duì)本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整的描述,顯 然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施 例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬 于本發(fā)明保護(hù)的范圍。如圖4所示,為本發(fā)明實(shí)施例中的全局負(fù)載均衡的HTTP重定向示意圖,包括客戶 端、服務(wù)器集群I、與服務(wù)器集群I連接的LB設(shè)備I、服務(wù)器集群II、與服務(wù)器集群II連接 的LB設(shè)備II、服務(wù)器集群III,以及與服 務(wù)器集群III連接的LB設(shè)備III。通常,各個(gè)LB 設(shè)備中維護(hù)有站點(diǎn)列表,該站點(diǎn)列表中包含各站點(diǎn)的信息,即可供選擇作為重定向站點(diǎn)的 LB設(shè)備的信息。LB設(shè)備對(duì)接收到的get請(qǐng)求進(jìn)行重定向時(shí),可以從該站點(diǎn)列表中選擇重定 向站點(diǎn)°在上述架構(gòu)中,客戶端向LB設(shè)備I發(fā)送get請(qǐng)求,該get請(qǐng)求中攜帶LB設(shè)備I的 IP地址作為該get請(qǐng)求的目的地址,即該get請(qǐng)求中的URL表示為http://l. 1. 1. 1。當(dāng) 與LB設(shè)備I連接的服務(wù)器集群I中沒有可用的服務(wù)器(即LB設(shè)備I所在站點(diǎn)無法響應(yīng)該 get請(qǐng)求)時(shí),LB設(shè)備I根據(jù)站點(diǎn)列表選擇LB設(shè)備II作為重定向站點(diǎn),并根據(jù)LB設(shè)備II 的信息生成重定向報(bào)文,并將該重定向報(bào)文發(fā)送到客戶端,該重定向報(bào)文的URL(Universal Resource Locator,統(tǒng)一資源定位符)信息中攜帶LB設(shè)備II的IP地址作為重定向站點(diǎn)地 址,上述URL信息中還攜帶向客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息,即LB設(shè)備I的標(biāo)識(shí) 參數(shù),其中,LB設(shè)備I的標(biāo)識(shí)參數(shù)可設(shè)置在URL信息中,如重定向報(bào)文的URL信息表示為 http://2. 2. 2. 2 ? SrvKey = 01010101,其中,http 為 URL 信息中的 scheme (通信協(xié)議) 部分的內(nèi)容,表示該URL信息使用HTTP協(xié)議;2. 2. 2. 2為URL信息中的host (主機(jī))部分 的內(nèi)容,表示重定向站點(diǎn)地址,即LB設(shè)備II的地址;SrvKey = 01010101為URL信息中的 query (查詢)部分的內(nèi)容,表示LB設(shè)備I向客戶端發(fā)送過重定向報(bào)文(01010101是LB設(shè) 備I的標(biāo)識(shí)參數(shù))??蛻舳私邮諄碜訪B設(shè)備I的重定向報(bào)文,獲取該重定向報(bào)文中攜帶的URL信息, 生成包含該URL信息的get請(qǐng)求,并向LB設(shè)備II發(fā)送該get請(qǐng)求,該get請(qǐng)求中的URL信 息包括LB設(shè)備II的IP地址作為該get請(qǐng)求的目的地址,該URL信息的query部分記錄有 向客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息,例如,LB設(shè)備I的標(biāo)識(shí)參數(shù)。在具體實(shí)現(xiàn)中,根 據(jù)現(xiàn)有協(xié)議,客戶端可以直接將重定向報(bào)文的URL信息作為生成的get請(qǐng)求的URL信息, 即:http://2. 2.2.2 SrvKey = 01010101,其中,2. 2. 2. 2 是目標(biāo)站點(diǎn)(即 LB 設(shè)備 II)的 地址,SrvKey = 01010101表示向客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息,此處為L(zhǎng)B設(shè)備I 的標(biāo)識(shí)參數(shù)。如果與LB設(shè)備II連接的服務(wù)器集群II中也沒有可用的服務(wù)器,LB設(shè)備II 對(duì)接收到的get請(qǐng)求進(jìn)行重定向處理,該重定向處理流程如圖5所示,包括以下步驟步驟501,LB設(shè)備11解析來自客戶端的get請(qǐng)求。該步驟中,客戶端接收到LB設(shè)備I發(fā)送的重定向報(bào)文后,通過解析該報(bào)文中的URL 信息獲知重定向站點(diǎn)為L(zhǎng)B設(shè)備II所在站點(diǎn),并向LB設(shè)備II發(fā)送包含上述URL信息的get請(qǐng)求,該URL信息中攜帶在本次全局負(fù)載均衡過程中向該客戶端發(fā)送過重定向報(bào)文的站點(diǎn) 的信息,這里是LB設(shè)備I所在站點(diǎn)的信息。在本發(fā)明實(shí)施例中,該get請(qǐng)求消息中的URL 信息可表示為:http://2. 2. 2. 2 ? SrvKey = 01010101。步驟502,LB設(shè)備II根據(jù)解析結(jié)果判斷該get請(qǐng)求中是否攜帶有向客戶端發(fā)送過 重定向報(bào)文的站點(diǎn)的信息。如果判斷結(jié)果為是,則執(zhí)行步驟503 ;否則,執(zhí)行步驟504。其中,向客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息可以是標(biāo)識(shí)參數(shù)。該標(biāo)識(shí)參數(shù)可 以為SrvKey參數(shù),該參數(shù)與站點(diǎn)的IP地址相對(duì)應(yīng),可以根據(jù)IP地址生成。例如,本實(shí)施例 中,發(fā)送過重定向報(bào)文的站點(diǎn)為L(zhǎng)B設(shè)備I,LB設(shè)備I的IP地址為1. 1. 1. 1,可以將該IP地 址的每段轉(zhuǎn)換成兩位的十進(jìn)制數(shù),并將每段轉(zhuǎn)換得到的十進(jìn)制數(shù)進(jìn)行合并,相應(yīng)的SrvKey 參數(shù)可以為“SrvKey = 01010101”。需要說明的是,由于IP地址的每段所能表示的十進(jìn)制 數(shù)最大不超過255,也可以將IP地址的每段轉(zhuǎn)換成三位的十進(jìn)制整數(shù),并將轉(zhuǎn)換的結(jié)果進(jìn) 行合并,得到相應(yīng)的SrvKey參數(shù),這樣可以保證標(biāo)識(shí)參數(shù)與IP地址的一一對(duì)應(yīng)關(guān)系。步驟503,LB設(shè)備II從站點(diǎn)列表中選擇除該發(fā)送過重定向報(bào)文的站點(diǎn)以外的其他 站點(diǎn)作為本次重定向站點(diǎn)。具體地,在get請(qǐng)求中包含的發(fā)送過重定向報(bào)文的站點(diǎn)信息表示為站點(diǎn)標(biāo)識(shí)參數(shù) 的情況下,例如發(fā)送過重定向報(bào)文的站點(diǎn)的標(biāo)識(shí)參數(shù)“SrvKey = 01010101”時(shí),LB設(shè)備可 以通過解析該標(biāo)識(shí)參數(shù),得到發(fā)送過重定向報(bào)文的站點(diǎn)的IP地址,即1. 1. 1. 1。由于站點(diǎn)列 表中包含可供選擇作為重定向站點(diǎn)的LB設(shè)備的IP地址(LB設(shè)備的IP地址即為該設(shè)備所 在站點(diǎn)的IP地址),LB設(shè)備II從該站點(diǎn)列表中選擇不同于1. 1. 1. 1的IP地址作為重定向 地址,與重定向地址對(duì)應(yīng)的LB設(shè)備即為重定向站點(diǎn)。LB設(shè)備II可針對(duì)該客戶端復(fù)制一份 站點(diǎn)列表副本,并將發(fā)送過重定向報(bào)文的站點(diǎn)的IP地址從該站點(diǎn)列表副本中刪除或標(biāo)記 為不可用,以避免選擇發(fā)送過重定向報(bào)文的站點(diǎn)作為重定向站點(diǎn)。需要說明的是,在執(zhí)行完步驟后,繼續(xù)執(zhí)行步驟505。步驟504,LB設(shè)備II從站點(diǎn)列表中選擇重定向站點(diǎn)。具體地,當(dāng)LB設(shè)備II判斷get請(qǐng)求中沒有攜帶向客戶端發(fā)送過重定向報(bào)文的站 點(diǎn)的信息時(shí),LB設(shè)備II從站點(diǎn)列表中選擇重定向站點(diǎn)。步驟505,LB設(shè)備II生成重定向報(bào)文,并將重定向報(bào)文發(fā)送到客戶端。LB設(shè)備II在生成重定向報(bào)文時(shí),將其自身所在站點(diǎn)的信息作為向客戶端發(fā)送過 重定向報(bào)文的站點(diǎn)信息添加到該重定向報(bào)文中。具體地,在get請(qǐng)求中攜帶的發(fā)送過重 定向報(bào)文的站點(diǎn)信息表示為站點(diǎn)標(biāo)識(shí)參數(shù)的情況下,LB設(shè)備II可以根據(jù)自身的IP地址 計(jì)算得到相應(yīng)的標(biāo)識(shí)參數(shù),并將該標(biāo)識(shí)參數(shù)添加到從get請(qǐng)求中獲得的URL信息的query 部分中。本實(shí)施例中,LB設(shè)備II的IP地址為2. 2. 2. 2時(shí),相應(yīng)的SrvKey參數(shù)可以為 “02020202”,LB 設(shè)備 II 所接收到的 get 請(qǐng)求中的 URL表示為:“http://2. 2. 2. 2/ ? SrvKey =01010101”,其中,標(biāo)識(shí)參數(shù)“SrvKey = 01010101”表示向客戶端發(fā)送過重定向報(bào)文的站 點(diǎn),此時(shí),LB設(shè)備II將其自身的標(biāo)識(shí)參數(shù)“02020202”添加到該URL信息中,得到添加了站 點(diǎn)信息的 URL 信息:http://2. 2. 2. 2/ ? SrvKey = 0101010102020202,即表示向客戶端發(fā) 送過重定向報(bào)文的站點(diǎn)為L(zhǎng)B設(shè)備I和LB設(shè)備II所在的站點(diǎn)。當(dāng)LB設(shè)備II從get請(qǐng)求中解析得到的用于表示向客戶端發(fā)送過重定向報(bào)文的站 點(diǎn)的URL信息為http://2. 2. 2. 2/時(shí),表明目前還沒有向客戶端發(fā)送過重定向報(bào)文的站點(diǎn),
8LB設(shè)備II將其自身的標(biāo)識(shí)參數(shù)添加到該URL信息的query部分后,該URL信息可以表示為 http://2. 2. 2. 2/ ? SrvKey = 02020202,表明當(dāng)前向客戶端發(fā)送過重定向報(bào)文的站點(diǎn)為L(zhǎng)B 設(shè)備II所在的站點(diǎn)。
LB設(shè)備II在生成重定向報(bào)文時(shí),根據(jù)添加了站點(diǎn)信息的URL信息生成重定向報(bào) 文的URL信息,即保留該添加了站點(diǎn)信息的URL信息的query部分,將該添加了站點(diǎn)信息的 URL信息中的host部分替換為選擇出的重定向站點(diǎn)的信息,重定向站點(diǎn)的信息可以為重定 向站點(diǎn)的IP地址。LB設(shè)備II生成的重定向報(bào)文的URL信息可以表示為L(zhǎng)ocation(位置)信息的 形式,該Location信息中攜帶重定向站點(diǎn)的IP地址,以及向客戶端發(fā)送過重定向報(bào)文的 站點(diǎn)的信息,如采用URL方式表示的站點(diǎn)標(biāo)識(shí)參數(shù)。例如,當(dāng)重定向站點(diǎn)為L(zhǎng)B設(shè)備III, LB設(shè)備III的IP地址為3. 3. 3. 3,向客戶端發(fā)送過重定向報(bào)文的站點(diǎn)為L(zhǎng)B設(shè)備I和LB 設(shè)備II所在的站點(diǎn)時(shí),LB設(shè)備II生成的重定向報(bào)文中的Location信息為-“Location http://3.3.3.3/ ? SrvKey = 0101010102020202”。需要說明的是,在本發(fā)明的其他實(shí)施方式中,客戶端向LB設(shè)備發(fā)送的get請(qǐng)求中, 也可以攜帶發(fā)送過重定向報(bào)文的站點(diǎn)的IP地址或站點(diǎn)標(biāo)識(shí)等信息,以代替發(fā)送過重定向 報(bào)文的站點(diǎn)的標(biāo)識(shí)參數(shù)。LB設(shè)備向客戶端發(fā)送的重定向報(bào)文中,也可以攜帶該發(fā)送過重定 向報(bào)文的站點(diǎn)的IP地址或站點(diǎn)標(biāo)識(shí)等信息,以代替發(fā)送過重定向報(bào)文的站點(diǎn)的標(biāo)識(shí)參數(shù)。在本發(fā)明的其他實(shí)施方式中,向客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息還可以攜 帶在除get請(qǐng)求之外的其他HTTP請(qǐng)求中發(fā)送給LB設(shè)備,例如,攜帶在post請(qǐng)求中。根據(jù)以上描述可以看出,通過在重定向報(bào)文和HTTP請(qǐng)求中添加向客戶端發(fā)送過 重定向報(bào)文的站點(diǎn)的信息,從而協(xié)助后續(xù)站點(diǎn)選擇重定向站點(diǎn),避免了全局負(fù)載均衡的重 定向過程中出現(xiàn)的不同服務(wù)器集群間的重復(fù)重定向,提高了全局負(fù)載均衡業(yè)務(wù)的可用性和 可靠性。當(dāng)然,實(shí)施本發(fā)明的實(shí)施例的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu) 點(diǎn)ο根據(jù)上述實(shí)施方式中提供的全局負(fù)載均衡中的重定向方法,本發(fā)明實(shí)施例還提供 了應(yīng)用上述重定向方法的裝置。如圖6所示,為本發(fā)明實(shí)施例中的負(fù)載均衡設(shè)備的結(jié)構(gòu)示意圖,包括獲取模塊610,用于接收來自客戶端的HTTP請(qǐng)求,獲取所述HTTP請(qǐng)求中攜帶的向 客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息。其中,站點(diǎn)的信息包括站點(diǎn)的IP地址、站點(diǎn)標(biāo)識(shí)和根據(jù)IP地址生成的用于唯一標(biāo) 識(shí)該站點(diǎn)的標(biāo)識(shí)參數(shù)中的至少一種。選擇模塊620,用于從站點(diǎn)列表選擇除發(fā)送過重定向報(bào)文的站點(diǎn)之外的站點(diǎn),作為 本次的重定向站點(diǎn)。具體地,選擇模塊620可以將發(fā)送過重定向報(bào)文的站點(diǎn)作為不可用站點(diǎn),并從排 除該不可用站點(diǎn)的站點(diǎn)列表中選擇重定向站點(diǎn)。生成模塊630,用于根據(jù)選擇模塊620選擇出的重定向站點(diǎn)的信息生成重定向報(bào) 文,其中,生成模塊630將負(fù)載均衡設(shè)備所在站點(diǎn)的信息和獲取到的發(fā)送過重定向報(bào)文的 站點(diǎn)的信息作為發(fā)送過重定向報(bào)文的站點(diǎn)的信息添加到重定向報(bào)文中。具體地,生成模塊630可以從接收到的客戶端的HTTP請(qǐng)求中獲取URL信息,并將負(fù)載均衡設(shè)備所在站點(diǎn)的信息添加到該URL信息中用于記錄向客戶端發(fā)送過重定向報(bào)文 的站點(diǎn)的信息的query部分;根據(jù)該添加了站點(diǎn)信息的URL信息生成重定向報(bào)文的URL信 肩、ο發(fā)送模塊640,用于將生成模塊630生成的重定向報(bào)文發(fā)送到客戶端。此外,當(dāng)獲取模塊610接收到的HTTP請(qǐng)求中沒有攜帶向客戶端發(fā)送過重定向報(bào)文 的站點(diǎn)的信息時(shí),上述選擇模塊620還用于在從站點(diǎn)列表中選擇本次的重定向站點(diǎn);相應(yīng) 地,上述生成模塊630,還用于根據(jù)選擇模塊620選擇出的重定向站點(diǎn)生成重定向報(bào)文,其 中,生成模塊630將負(fù)載均衡設(shè)備所在站點(diǎn)的信息作為向客戶端發(fā)送過重定向報(bào)文的站點(diǎn) 的信息添加到重定向報(bào)文中。本發(fā)明的實(shí)施例包括以下優(yōu)點(diǎn),通過在重定向報(bào)文和HTTP請(qǐng)求中添加向客戶端 發(fā)送過重定向報(bào)文的站點(diǎn)的信息,協(xié)助后續(xù)站點(diǎn)選擇重定向站點(diǎn),避免了全局負(fù)載均衡的 重定向過程中出現(xiàn)的不同服務(wù)器集群間的重復(fù)重定向,提高全局負(fù)載均衡業(yè)務(wù)的可用性和 可靠性。當(dāng)然,實(shí)施本發(fā)明的實(shí)施例的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)
點(diǎn)ο本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分 布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上 述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助 軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更 佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的 部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若 干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行 本發(fā)明各個(gè)實(shí)施例所述的方法。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng) 視本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種全局負(fù)載均衡中的重定向方法,其特征在于,包括負(fù)載均衡設(shè)備接收來自客戶端的超文本傳輸協(xié)議HTTP請(qǐng)求,獲取所述HTTP請(qǐng)求中攜帶的向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息;所述負(fù)載均衡設(shè)備從站點(diǎn)列表選擇除所述發(fā)送過重定向報(bào)文的站點(diǎn)之外的站點(diǎn),作為本次的重定向站點(diǎn);所述負(fù)載均衡設(shè)備根據(jù)選擇出的重定向站點(diǎn)生成重定向報(bào)文,其中,所述負(fù)載均衡設(shè)備將其所在站點(diǎn)的信息和獲取到的發(fā)送過重定向報(bào)文的站點(diǎn)的信息作為發(fā)送過重定向報(bào)文的站點(diǎn)的信息添加到所述重定向報(bào)文中;所述負(fù)載均衡設(shè)備將所述重定向報(bào)文發(fā)送到所述客戶端。
2.如權(quán)利要求1所述的方法,其特征在于,所述客戶端通過以下方式生成HTTP請(qǐng)求 所述客戶端接收重定向報(bào)文,獲取所述重定向報(bào)文中攜帶的統(tǒng)一資源定位符URL信息,所述URL信息中的查詢query部分記錄有向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信 息;所述客戶端生成包含所述URL信息的HTTP請(qǐng)求。
3.如權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)所述HTTP請(qǐng)求中沒有攜帶向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息時(shí),所述 負(fù)載均衡設(shè)備從所述站點(diǎn)列表中選擇本次的重定向站點(diǎn);所述負(fù)載均衡設(shè)備根據(jù)選擇出的重定向站點(diǎn)生成重定向報(bào)文,其中,所述負(fù)載均衡設(shè) 備將其所在站點(diǎn)的信息作為向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息添加到所述重 定向報(bào)文中;所述負(fù)載均衡設(shè)備將所述重定向報(bào)文發(fā)送到所述客戶端。
4.如權(quán)利要求1所述的方法,其特征在于,所述負(fù)載均衡設(shè)備將其所在站點(diǎn)的信息和 獲取到的發(fā)送過重定向報(bào)文的站點(diǎn)的信息作為發(fā)送過重定向報(bào)文的站點(diǎn)的信息添加到所 述重定向報(bào)文中,具體為所述負(fù)載均衡設(shè)備從接收到的客戶端的HTTP請(qǐng)求中獲取URL信息,并將該負(fù)載均衡設(shè) 備所在站點(diǎn)的信息添加到該URL信息中用于記錄向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn) 的信息的query部分;所述負(fù)載均衡設(shè)備根據(jù)該添加了站點(diǎn)信息的URL信息生成所述重定向報(bào)文的URL信肩、ο
5.如權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述站點(diǎn)的信息包括所述站點(diǎn) 的IP地址、站點(diǎn)標(biāo)識(shí)和根據(jù)IP地址生成的用于唯一標(biāo)識(shí)所述站點(diǎn)的標(biāo)識(shí)參數(shù)中的至少一 種。
6.一種負(fù)載均衡設(shè)備,其特征在于,包括獲取模塊,用于接收來自客戶端的HTTP請(qǐng)求,獲取所述HTTP請(qǐng)求中攜帶的向所述客戶 端發(fā)送過重定向報(bào)文的站點(diǎn)的信息;選擇模塊,用于從站點(diǎn)列表選擇除所述發(fā)送過重定向報(bào)文的站點(diǎn)之外的站點(diǎn),作為本 次的重定向站點(diǎn);生成模塊,用于根據(jù)所述選擇模塊選擇出的重定向站點(diǎn)生成重定向報(bào)文,其中,所述生 成模塊將所述負(fù)載均衡設(shè)備所在站點(diǎn)的信息和獲取到的發(fā)送過重定向報(bào)文的站點(diǎn)的信息作為發(fā)送過重定向報(bào)文的站點(diǎn)的信息添加到所述重定向報(bào)文中;發(fā)送模塊,用于將所述生成模塊生成的重定向報(bào)文發(fā)送到所述客戶端。
7.如權(quán)利要求6所述的設(shè)備,其特征在于,所述選擇模塊,還用于在所述HTTP請(qǐng)求中沒有攜帶向所述客戶端發(fā)送過重定向報(bào)文 的站點(diǎn)的信息時(shí),從所述站點(diǎn)列表中選擇本次的重定向站點(diǎn);所述生成模塊,還用于根據(jù)所述選擇模塊選擇出的重定向站點(diǎn)生成重定向報(bào)文,其中, 所述生成模塊將所述負(fù)載均衡設(shè)備所在站點(diǎn)的信息作為向所述客戶端發(fā)送過重定向報(bào)文 的站點(diǎn)的信息添加到所述重定向報(bào)文中。
8.如權(quán)利要求6所述的設(shè)備,其特征在于,所述生成模塊,具體用于從接收到的客戶端的HTTP請(qǐng)求中獲取URL信息,并將所述負(fù) 載均衡設(shè)備所在站點(diǎn)的信息添加到該URL信息中用于記錄向所述客戶端發(fā)送過重定向報(bào) 文的站點(diǎn)的信息的query部分;根據(jù)該添加了站點(diǎn)信息的URL信息生成所述重定向報(bào)文的 URL信息。
9.如權(quán)利要求6至8任一項(xiàng)所述的設(shè)備,其特征在于,所述站點(diǎn)的信息包括所述站點(diǎn)的 IP地址、站點(diǎn)標(biāo)識(shí)和根據(jù)IP地址生成的用于唯一標(biāo)識(shí)所述站點(diǎn)的標(biāo)識(shí)參數(shù)中的至少一種。
全文摘要
本發(fā)明公開了一種全局負(fù)載均衡中的重定向方法和裝置,該方法包括負(fù)載均衡設(shè)備接收來自客戶端的超文本傳輸協(xié)議HTTP請(qǐng)求,獲取所述HTTP請(qǐng)求中攜帶的向所述客戶端發(fā)送過重定向報(bào)文的站點(diǎn)的信息;所述負(fù)載均衡設(shè)備從站點(diǎn)列表選擇除所述發(fā)送過重定向報(bào)文的站點(diǎn)之外的站點(diǎn),作為本次的重定向站點(diǎn);所述負(fù)載均衡設(shè)備根據(jù)選擇出的重定向站點(diǎn)生成重定向報(bào)文,其中,所述負(fù)載均衡設(shè)備將其所在站點(diǎn)的信息和獲取到的發(fā)送過重定向報(bào)文的站點(diǎn)的信息作為發(fā)送過重定向報(bào)文的站點(diǎn)的信息添加到所述重定向報(bào)文中;所述負(fù)載均衡設(shè)備將所述重定向報(bào)文發(fā)送到所述客戶端。通過使用本發(fā)明,可以避免全局負(fù)載均衡中的重復(fù)重定向,提高全局負(fù)載均衡業(yè)務(wù)的可用性和可靠性。
文檔編號(hào)H04L29/12GK101938427SQ20101029208
公開日2011年1月5日 申請(qǐng)日期2010年9月27日 優(yōu)先權(quán)日2010年9月27日
發(fā)明者于洪強(qiáng) 申請(qǐng)人:杭州華三通信技術(shù)有限公司