欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種負(fù)載均衡方法、負(fù)載均衡器及系統(tǒng)的制作方法

文檔序號:7776364閱讀:142來源:國知局
一種負(fù)載均衡方法、負(fù)載均衡器及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種負(fù)載均衡方法、負(fù)載均衡器及系統(tǒng);方法包括:當(dāng)收到客戶端的請求時(shí),從所述請求中獲取會話身份證SessionId;從會話Session表中查找與所述SessionId對應(yīng)的服務(wù)器,將所述請求發(fā)送給該服務(wù)器;其中,所述Session表中保存有與SessionId對應(yīng)的服務(wù)器地址。本發(fā)明的技術(shù)方案通過從客戶端的請求中獲取SessionId,利用SessionId來確定對應(yīng)的服務(wù)器,可以保證回話過程中不中斷,并且,實(shí)現(xiàn)負(fù)載均衡,由此解決了現(xiàn)有技術(shù)中存在可能回話丟失和負(fù)載不均衡的問題,取得了在保證回話保持的前提下實(shí)現(xiàn)負(fù)載均衡的有益效果。
【專利說明】一種負(fù)載均衡方法、負(fù)載均衡器及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體涉及一種負(fù)載均衡方法、負(fù)載均衡器及系統(tǒng)。
【背景技術(shù)】
[0002]集群技術(shù)推出后,負(fù)載均衡作為集群技術(shù)的核心得到了廣泛關(guān)注研究,負(fù)載均衡既要在保證后端服務(wù)器之間的負(fù)載相當(dāng),在需要會話保持的場景中又需要正確地把同一會話的請求分配到相應(yīng)的后端服務(wù)器,保證客戶端與后端服務(wù)器之間的會話不丟失。
[0003]LVS (Linux Virtual Server, Linux虛擬服務(wù)器)是開源的負(fù)載均衡技術(shù),通過在Netfilter(網(wǎng)絡(luò)篩選系統(tǒng))的檢測點(diǎn)(HOOK)點(diǎn)上插入調(diào)用方法,在IP( Internet Protocol,網(wǎng)絡(luò)之間互連的協(xié)議)層實(shí)現(xiàn)數(shù)據(jù)包的透明轉(zhuǎn)發(fā)。LVS維護(hù)一個連接表信息,保存客戶端IP、端口和后端服務(wù)器IP和端口信息,當(dāng)有數(shù)據(jù)包到達(dá)時(shí),根據(jù)IP、端口信息查詢連接表得到轉(zhuǎn)發(fā)目標(biāo)。
[0004]目前LVS是利用源IP進(jìn)行會話保持的,到達(dá)LVS的數(shù)據(jù)包中相同源IP的數(shù)據(jù)一律分配到同一后端服務(wù)器,即當(dāng)TCP (Transmission Control Protocol,傳輸控制協(xié)議)的SYN (同步)包到達(dá)LVS時(shí),LVS會查詢連接表中是否存在與此SYN包源IP —致的連接,如果存在,則把SYN包轉(zhuǎn)發(fā)到連接記錄的后端服務(wù)器,如果不存在則按配置的調(diào)度算法調(diào)度一臺后端服務(wù)器后轉(zhuǎn)發(fā)。
[0005]上述方案的缺點(diǎn)是在高速代理上網(wǎng)環(huán)境下可能會存在會話丟失和嚴(yán)重的負(fù)載不均衡問題,圖1示出了多代理服務(wù)器上網(wǎng)環(huán)境下的會話流程,大量客戶端用戶的請求,通過多臺代理服務(wù)器的ISP (Internet Service Provider,互聯(lián)網(wǎng)服務(wù)提供商)或企業(yè)內(nèi)部網(wǎng)發(fā)送給負(fù)載均衡器連接,來自同一客戶的同一個會話的兩個請求可能走不同的代理服務(wù)器到達(dá)LVS (負(fù)載均衡器),LVS判斷源IP不同,把兩個請求分配到不同的后端服務(wù)器器,導(dǎo)致會話丟失;比如,LVS將來自Proxyl的訪問請求,根據(jù)代理服務(wù)器I的IP地址,利用負(fù)載均衡算法選擇圖1最上面一臺服務(wù)器進(jìn)行處理;而將來自Proxy2的訪問請求,根據(jù)代理服務(wù)器2的IP地址,利用負(fù)載均衡算法選擇圖1最下面一臺服務(wù)器進(jìn)行處理;導(dǎo)致會話丟失。圖2示出了單代理服務(wù)器上網(wǎng)環(huán)境下的會話流程,大量客戶端的請求通過單代理服務(wù)器到達(dá)LVS,LVS判斷源IP相同,把這些請求都分配到同一臺后端服務(wù)器,導(dǎo)致單臺服務(wù)器過載,其他服務(wù)器卻很空閑。比如,來自三臺客戶端的訪問請求都到達(dá)LVS,LVS判斷都是來自Proxyl的訪問請求(源IP相同),負(fù)載均衡器根據(jù)會話保持把所有連接都轉(zhuǎn)發(fā)給一臺服務(wù)器,這樣,就導(dǎo)致服務(wù)器的負(fù)載不均衡。

【發(fā)明內(nèi)容】

[0006]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的負(fù)載均衡器、系統(tǒng)和相應(yīng)的負(fù)載均衡方法。
[0007]依據(jù)本發(fā)明的一個方面,提供了一種負(fù)載均衡方法,用于在服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡,該方法包括:[0008]當(dāng)收到客戶端的請求時(shí),從所述請求中獲取會話身份證SessionId ;
[0009]從會話Session表中查找與所述SessionId對應(yīng)的服務(wù)器,將所述請求發(fā)送給該服務(wù)器;其中,所述Session表中保存有與SessionId對應(yīng)的服務(wù)器地址。
[0010]可選地,所述SessionId從所述請求中的小型文本文件Cookie信息中獲?。?br> [0011 ] 將所述請求發(fā)送給該服務(wù)器之前,利用預(yù)先緩存的同步SYN包、確認(rèn)ACK包與該服務(wù)器建立連接。
[0012]可選地,當(dāng)從所述Session表中沒有查到與所述SessionId對應(yīng)的服務(wù)器時(shí),根據(jù)負(fù)載均衡原則,選擇一臺服務(wù)器,利用所述緩存SYN包、ACK包與該服務(wù)器建立連接,將所述請求發(fā)送給該服務(wù)器。
[0013]可選地,收到服務(wù)器的響應(yīng)數(shù)據(jù)包后,當(dāng)所述響應(yīng)數(shù)據(jù)包的中包括SessionId時(shí);將所述SessionId和該服務(wù)器的地址保存到Session表中;
[0014]根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
[0015]可選地,當(dāng)所述響應(yīng)數(shù)據(jù)包中不包括SessionId時(shí),根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
[0016]根據(jù)本發(fā)明的另一方面,提供了一種負(fù)載均衡器,用于在服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡,該負(fù)載均衡器包括:
[0017]客戶端身份信息獲取模塊,用于當(dāng)收到客戶端的請求時(shí),從所述請求中獲取會話身份證 SessionId ;
[0018]發(fā)送模塊,用于從會話Session表中查找與所述SessionId對應(yīng)的服務(wù)器,將所述請求發(fā)送給該服務(wù)器;其中,所述Session表中保存有與SessionId對應(yīng)的服務(wù)器地址。
[0019]可選地,所述客戶端身份信息獲取模塊從所述請求中的小型文本文件Cookie信息中獲取所述SessionId ;
[0020]所述發(fā)送模塊將所述請求發(fā)送給該服務(wù)器之前,利用預(yù)先緩存的同步SYN包、確認(rèn)ACK包與該服務(wù)器建立連接。
[0021]可選地,所述發(fā)送模塊還用于:
[0022]當(dāng)所述客戶端身份信息獲取模塊從所述Session表中沒有查到與所述SessionId對應(yīng)的服務(wù)器時(shí),所述發(fā)送模塊根據(jù)負(fù)載均衡原則,選擇一臺服務(wù)器,利用所述緩存SYN包、ACK包與該服務(wù)器建立連接,將所述請求發(fā)送給該服務(wù)器。
[0023]可選地,所述裝置還包括:
[0024]會話表更新模塊,用于收到服務(wù)器的響應(yīng)數(shù)據(jù)包后,當(dāng)所述響應(yīng)數(shù)據(jù)包中包括SessionId時(shí);將所述SessionId和該服務(wù)器的地址保存到Session表中;
[0025]所述發(fā)送模塊根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
[0026]可選地,所述發(fā)送模塊還用于:
[0027]當(dāng)所述響應(yīng)數(shù)據(jù)包中不包括SessionId時(shí),根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
[0028]根據(jù)本發(fā)明的另一方面,提供了一種負(fù)載均衡器系統(tǒng),包括多個客戶端、多臺服務(wù)器,以及設(shè)置在客戶端、服務(wù)器之間的所述負(fù)載均衡器。
[0029]本發(fā)明的技術(shù)方案通過從客戶端的請求中獲取SessionId,利用SessionId來確定對應(yīng)的服務(wù)器,可以保證會話過程中不中斷,并且,實(shí)現(xiàn)負(fù)載均衡,由此解決了現(xiàn)有技術(shù)中存在可能會話丟失和負(fù)載不均衡的問題,取得了在保證會話保持的前提下實(shí)現(xiàn)負(fù)載均衡的的有益效果。
[0030]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【專利附圖】

【附圖說明】
[0031]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0032]圖1示出了現(xiàn)有技術(shù)中客戶端、服務(wù)器之間通過負(fù)載均衡器和多臺代理服務(wù)器連接的結(jié)構(gòu)圖;
[0033]圖2示出了現(xiàn)有技術(shù)中客戶端、服務(wù)器之間通過負(fù)載均衡器和單臺代理服務(wù)器連接的結(jié)構(gòu)圖;
[0034]圖3示出了根據(jù)本發(fā)明一個實(shí)施例的一種負(fù)載均衡方法的流程圖;
[0035]圖4示出了根據(jù)本發(fā)明一個實(shí)施例的一種針對客戶請求進(jìn)行處理流程圖;
[0036]圖5示出了根據(jù)本發(fā)明一個實(shí)施例的一種針對服務(wù)器響應(yīng)的處理流程圖;
[0037]圖6示出了根據(jù)本發(fā)明一個實(shí)施例的一種負(fù)載均衡器的結(jié)構(gòu)示意圖;
[0038]圖7示出了根據(jù)本發(fā) 明再一個實(shí)施例的一種負(fù)載均衡器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0040]如圖3所示,本發(fā)明實(shí)施例涉及一種負(fù)載均衡方法,用于在服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡,該方法包括:當(dāng)收到客戶端的請求時(shí),從該請求中獲取會話身份證SessionId ;從會話Session表中查找與SessionId對應(yīng)的服務(wù)器,將上述請求發(fā)送給該服務(wù)器;其中,Session表中保存有與SessionId對應(yīng)的服務(wù)器地址。
[0041]具體的,當(dāng)有新請求到達(dá)LVS時(shí),利用延遲綁定技術(shù)得到請求中的Cookie信息,然后根據(jù)Cookie信息中的SessionID字段選擇后端服務(wù)器進(jìn)行轉(zhuǎn)發(fā)。整個過程中加入了 sl_vs_request_skbuff數(shù)據(jù)體,用于保存SYN包、ACK包和請求頭數(shù)據(jù)包,并記錄負(fù)載均衡器發(fā)回給客戶端的數(shù)據(jù)包TCP起始序列號和真實(shí)服務(wù)器產(chǎn)生的TCP起始序列號。
[0042]sl_vs_request_skbuff主要是用于,保存SYN包、ACK包和請求頭數(shù)據(jù)包,示例如下:
[0043]struct si—vs—request—skbuff
[0044]{
[0045]struct list—head r—list;
[0046]ul6af;/^address family*/[0047]union nf_inet_addr caddr;
[0048]union nf—inet—addr vaddr;
[0049]—bel6cport;
[0050]—bel6vport;
[0051]—ul6protocol ;//tcp協(xié)議,可以考慮不要這個字段
[0052]/^counter and timer*/
[0053]atomic—t refcnt;/^reference count木/
[0054]struct timer_list timer;/^Expiration timer*/
[0055]volatile unsigned long timeout;/氺timeout氺/
[0056]/木Flags and state transition^/
[0057]spinlock—t lock;/^lock for state transition氺/
[0058]v olatile—ul6flags;/^status flags*/
[0059]volatile—ul6state;/Estate info*/
[0060]atomic—t req—pkt—draf—flag;/* 請求頭分包則為 1,否則為 0*/
[0061]struct si—vs—session^session; ALB 中存在 session 為則綁定,否則為 NULL*/
[0062]struct sk—buff*syn—buff;
[0063]struct sk—buff*ack—buff;
[0064]struct sk—buff—head request—buff;//可能是多個數(shù)據(jù)包,請求頭緩存
[0065]//保存序號
[0066]volatile—u32vseq;
[0067]volatile—u32dseq;
[0068]};
[0069]LVS在NetFilter (包過濾)上注冊了重要的兩個函數(shù)ip—vs—in (負(fù)責(zé)對負(fù)載均衡器接收的客戶端請求進(jìn)行處理)和ip—vs—out (負(fù)責(zé)對負(fù)載均衡器接收的服務(wù)器響應(yīng)進(jìn)行處理),分別處理Client — Server方向和Server — Client方向的數(shù)據(jù)包。圖4為ip—vs—in處理流程圖,圖5為ip—Vs—out處理流程圖。
[0070]如圖4所示,當(dāng)收到客戶端請求時(shí),包括如下處理步驟:
[0071]當(dāng)客戶端發(fā)送的請求到達(dá)時(shí),在負(fù)載均衡器上模擬TCP連接建立過程,模擬服務(wù)器與客戶端建立連接的過程,并緩存SYN包、ACK包和請求頭。
[0072]從請求頭中取出Sessionld。
[0073]查找預(yù)先建立的Session表,判斷Session表中是否包含有上述Sessionld。
[0074]如果Session表中包含有上述Sessionld,則表明客戶端與服務(wù)器已經(jīng)進(jìn)行了會話,因此,根據(jù)Session表記載的與上述Sessionld對應(yīng)的服務(wù)器地址,選擇該服務(wù)器進(jìn)行連接;利用緩存的SYN包、ACK包與被選中的服務(wù)器連接,然后將請求頭發(fā)送給該服務(wù)器。
[0075]如果Session表中沒有包含有上述Sessionld,則表明是第一次發(fā)起連接,沒有會話信息,因此,基于負(fù)載均衡算法選擇一臺服務(wù)器,用前述緩存的SYN包、ACK包,經(jīng)過修改目標(biāo)地址和端口后,與被選擇的服務(wù)器連接,將請求頭發(fā)送給該服務(wù)器。
[0076]如圖5所示,當(dāng)服務(wù)器處理完請求后,反饋服務(wù)器響應(yīng)數(shù)據(jù)包,具體包括:
[0077]負(fù)載均衡器收到服務(wù)器反饋的響應(yīng)數(shù)據(jù)包后,解析響應(yīng)數(shù)據(jù)包,取出請求頭中能夠唯一標(biāo)識此次會話的Sessionld ;
[0078]判斷該Sessionld是否為空,如果是,則表明有會話信息存在,負(fù)載均衡器利用緩存的SYN包、ACK包,修改目標(biāo)地址、端口和序列號后,發(fā)給客戶端。如果否,則表明Session表中還沒有記錄該會話信息,因此,將Sessionld和對應(yīng)服務(wù)器地址作為一條記錄插入Session表中,然后利用緩存的SYN包、ACK包,修改目標(biāo)地址、端口和序列號后,發(fā)給客戶端。
[0079]這樣,每一次會話,在會話建立時(shí)就會在Session表中建立記錄,進(jìn)而在后續(xù)請求中,可以根據(jù)Sessionld找到對應(yīng)的服務(wù)器,不會造成會話丟失;而對于第一次發(fā)起連接的請求,則可以利用負(fù)載均衡算法進(jìn)行服務(wù)器分配,不會造成負(fù)載不均衡。
[0080]如圖6所示,本發(fā)明實(shí)施例還涉及一種實(shí)現(xiàn)上述方法的負(fù)載均衡器,用于在服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡,該負(fù)載均衡器包括:
[0081]客戶端身份信息獲取模塊,用于當(dāng)收到客戶端的請求時(shí),從所述請求中獲取會話身份證 Sessionld ;
[0082]發(fā)送模塊,用于從會話Session表中查找與所述Sessionld對應(yīng)的服務(wù)器,將所述請求發(fā)送給該服務(wù)器;其中,所述Session表中保存有與Sessionld對應(yīng)的服務(wù)器地址。
[0083]其中,所述客戶端身份信息獲取模塊從所述請求中的小型文本文件Cookie信息中獲取所述Sessionld ;
[0084]所述發(fā)送模塊將所述請求發(fā)送給該服務(wù)器之前,利用預(yù)先緩存的同步SYN包、確認(rèn)ACK包與該服務(wù)器建立連接。
[0085]所述發(fā)送模塊還用于:
[0086]當(dāng)所述客戶端身份信息獲取模塊從所述Session表中沒有查到與所述Sessionld對應(yīng)的服務(wù)器時(shí),所述發(fā)送模塊根據(jù)負(fù)載均衡原則,選擇一臺服務(wù)器,利用所述緩存SYN包、ACK包與該服務(wù)器建立連接,將所述請求發(fā)送給該服務(wù)器。
[0087]如圖7所示,該裝置還包括:
[0088]會話表更新模塊,用于收到服務(wù)器的響應(yīng)數(shù)據(jù)包后,當(dāng)所述響應(yīng)數(shù)據(jù)包中包括Sessionld時(shí);將所述Sessionld和該服務(wù)器的地址保存到Session表中;
[0089]所述發(fā)送模塊根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
[0090]其中,所述發(fā)送模塊還用于:
[0091]當(dāng)所述響應(yīng)數(shù)據(jù)包中不包括Sessionld時(shí),根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
[0092]另外,本發(fā)明實(shí)施例還涉及一種負(fù)載均衡器系統(tǒng),包括多個客戶端、多臺服務(wù)器,以及設(shè)置在客戶端、服務(wù)器之間的負(fù)載均衡器,其中,負(fù)載均衡器為上述實(shí)施例所述的負(fù)載均衡器,本實(shí)施例不在詳述。
[0093]本發(fā)明的技術(shù)方案通過從客戶端的請求中獲取Sessionld,利用Sessionld來確定對應(yīng)的服務(wù)器,可以保證回話過程中不中斷,并且,實(shí)現(xiàn)負(fù)載均衡,由此解決了現(xiàn)有技術(shù)中存在可能回話丟失和負(fù)載不均衡的問題,取得了在保證回話保持的前提下實(shí)現(xiàn)負(fù)載均衡的的有益效果。
[0094]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0095]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0096]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個特征有時(shí)被一起分組到單個實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0097]本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個或多個設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0098]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0099]本發(fā)明的各個部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個或者多個處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的負(fù)載均衡器中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0100]應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
【權(quán)利要求】
1.一種負(fù)載均衡方法,用于在服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡,該方法包括: 當(dāng)收到客戶端的請求時(shí),從所述請求中獲取會話身份證SessionId ; 從會話Session表中查找與所述SessionId對應(yīng)的服務(wù)器,將所述請求發(fā)送給該服務(wù)器;其中,所述Session表中保存有與SessionId對應(yīng)的服務(wù)器地址。
2.如權(quán)利要求1所述的方法,其中, 所述SessionId從所述請求中的小型文本文件Cookie信息中獲??; 將所述請求發(fā)送給該服務(wù)器之前,利用預(yù)先緩存的同步SYN包、確認(rèn)ACK包與該服務(wù)器建立連接。
3.如權(quán)利要求2所述的方法,其中, 當(dāng)從所述Session表中沒有查到與所述SessionId對應(yīng)的服務(wù)器時(shí),根據(jù)負(fù)載均衡原貝1J,選擇一臺服務(wù)器,利用所述緩存SYN包、ACK包與該服務(wù)器建立連接,將所述請求發(fā)送給該服務(wù)器。
4.如權(quán)利要求1~3任一項(xiàng)所述的方法,其中, 收到服務(wù)器的響應(yīng)數(shù)據(jù)包后,當(dāng)所述響應(yīng)數(shù)據(jù)包的中包括SessionId時(shí);將所述SessionId和該服務(wù)器的地址保存到Session表中; 根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
5.如權(quán)利要求4所述的方法,其中, 當(dāng)所述響應(yīng)數(shù)據(jù)包中不包括SessionId時(shí),根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
6.一種負(fù)載均衡器,用于在服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡,該負(fù)載均衡器包括: 客戶端身份信息獲取模塊,用于當(dāng)收到客戶端的請求時(shí),從所述請求中獲取會話身份證 SessionId ; 發(fā)送模塊,用于從會話Session表中查找與所述SessionId對應(yīng)的服務(wù)器,將所述請求發(fā)送給該服務(wù)器;其中,所述Session表中保存有與SessionId對應(yīng)的服務(wù)器地址。
7.如權(quán)利要求6所述的負(fù)載均衡器,其中,所述客戶端身份信息獲取模塊從所述請求中的小型文本文件Cookie信息中獲取所述SessionId ; 所述發(fā)送模塊將所述請求發(fā)送給該服務(wù)器之前,利用預(yù)先緩存的同步SYN包、確認(rèn)ACK包與該服務(wù)器建立連接。
8.如權(quán)利要求7所述的負(fù)載均衡器,其中,所述發(fā)送模塊還用于: 當(dāng)所述客戶端身份信息獲取模塊從所述Session表中沒有查到與所述SessionId對應(yīng)的服務(wù)器時(shí),所述發(fā)送模塊根據(jù)負(fù)載均衡原則,選擇一臺服務(wù)器,利用所述緩存SYN包、ACK包與該服務(wù)器建立連接,將所述請求發(fā)送給該服務(wù)器。
9.如權(quán)利要求6~8任一項(xiàng)所述的負(fù)載均衡器,其中,所述裝置還包括: 會話表更新模塊,用于收到服務(wù)器的響應(yīng)數(shù)據(jù)包后,當(dāng)所述響應(yīng)數(shù)據(jù)包中包括SessionId時(shí);將所述SessionId和該服務(wù)器的地址保存到Session表中; 所述發(fā)送模塊根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
10.如權(quán)利要求9所述的負(fù)載均衡器,其中,所述發(fā)送模塊還用于: 當(dāng)所述響應(yīng)數(shù)據(jù)包中不包括SessionId時(shí),根據(jù)連接信息,將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
11.一種負(fù)載均衡器系統(tǒng),包括多個客戶端、多臺服務(wù)器,以及設(shè)置在客戶端、服務(wù)器之間的負(fù)載均衡器,其中,所述負(fù)載均衡器為權(quán)利要求6~10任一項(xiàng)所述的負(fù)載均衡器。
【文檔編號】H04L12/803GK103607356SQ201310566155
【公開日】2014年2月26日 申請日期:2013年11月14日 優(yōu)先權(quán)日:2013年11月14日
【發(fā)明者】陳飛 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
苍溪县| 古交市| 五台县| 桐柏县| 佛教| 柯坪县| 措勤县| 自治县| 乌苏市| 达拉特旗| 娄烦县| 张家港市| 同德县| 于都县| 陆河县| 饶河县| 布拖县| 宾阳县| 屏山县| 北流市| 丹东市| 沿河| 甘泉县| 壤塘县| 嘉义市| 宁津县| 石林| 苍山县| 任丘市| 三亚市| 万盛区| 南木林县| 平舆县| 宜州市| 潢川县| 天台县| 靖边县| 闸北区| 高雄县| 抚远县| 德钦县|