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

HTTP請求處理方法、裝置及系統(tǒng)與流程

文檔序號:11180718閱讀:1764來源:國知局
HTTP請求處理方法、裝置及系統(tǒng)與流程
本發(fā)明實(shí)施例涉及網(wǎng)絡(luò)
技術(shù)領(lǐng)域
,特別涉及一種http請求處理方法、裝置及系統(tǒng)。
背景技術(shù)
:web服務(wù)集群是用于向客戶端提供http(hypertexttransferprotocol,超文本傳輸協(xié)議)服務(wù)的服務(wù)器集群。web服務(wù)器集群包括多臺web服務(wù)器,每臺web服務(wù)器上運(yùn)行有至少一個web容器,web容器是一種用于提供http服務(wù)的服務(wù)程序。目前的web服務(wù)器集群常采用tomcat容器和jetty容器作為web容器。在web服務(wù)集群中可能會提供多個同類型的web容器。當(dāng)web服務(wù)器集群接收到客戶端發(fā)送的http請求時,采用輪詢方式從多個同類型的web容器中確定出一個web容器,由確定出的web容器處理該http請求。在實(shí)現(xiàn)本發(fā)明實(shí)施例的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:當(dāng)web服務(wù)器集群中增加服務(wù)器或者刪除服務(wù)器時,會影響http服務(wù)的正常響應(yīng),無法穩(wěn)定地向客戶端提供http服務(wù)。技術(shù)實(shí)現(xiàn)要素:為了解決現(xiàn)有技術(shù)中當(dāng)web服務(wù)器集群中增加服務(wù)器或者刪除服務(wù)器時,會影響http服務(wù)的正常響應(yīng),無法穩(wěn)定地向客戶端提供http服務(wù)的問題,本發(fā)明實(shí)施例提供了一種http請求處理方法、裝置及系統(tǒng)。所述技術(shù)方案如下:根據(jù)本發(fā)明實(shí)施例的第一方面,提供了一種http請求處理方法,所述方法包括:代理服務(wù)器接收客戶端發(fā)送的http請求,所述http請求攜帶有uri和用戶標(biāo)識;所述代理服務(wù)器確定與所述uri對應(yīng)的服務(wù)器組,所述服務(wù)器組包括至少兩個響應(yīng)服務(wù)器;所述代理服務(wù)器根據(jù)所述用戶標(biāo)識的一致性哈希計算結(jié)果從所述服務(wù)器組中確定出目標(biāo)服務(wù)器;所述代理服務(wù)器將所述http請求發(fā)送至所述目標(biāo)服務(wù)器進(jìn)行處理。根據(jù)本發(fā)明實(shí)施例的第二方面,提供了一種http請求處理系統(tǒng),所述系統(tǒng)包括:所述代理服務(wù)器,用于接收所述客戶端發(fā)送的http請求,所述http請求攜帶有統(tǒng)一資源標(biāo)識符uri和用戶標(biāo)識;所述代理服務(wù)器,用于確定與所述uri對應(yīng)的服務(wù)器組,所述服務(wù)器組包括至少兩個服務(wù)器;所述代理服務(wù)器,用于根據(jù)所述用戶標(biāo)識的一致性哈希計算結(jié)果從所述服務(wù)器組中確定出目標(biāo)服務(wù)器;所述代理服務(wù)器,用于將所述http請求發(fā)送至所述目標(biāo)服務(wù)器進(jìn)行處理。根據(jù)本發(fā)明實(shí)施例的第三方面,提供了一種http請求處理裝置,所述裝置包括:第一接收模塊,用于接收所述客戶端發(fā)送的http請求,所述http請求攜帶有uri和用戶標(biāo)識;第一確定模塊,用于確定與所述uri對應(yīng)的服務(wù)器組,所述服務(wù)器組包括至少兩個服務(wù)器;哈希計算模塊,用于根據(jù)所述用戶標(biāo)識的一致性哈希計算結(jié)果從所述服務(wù)器組中確定出目標(biāo)服務(wù)器;第一發(fā)送模塊,用于將所述http請求發(fā)送至所述目標(biāo)服務(wù)器進(jìn)行處理。本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:通過代理服務(wù)器接收客戶端發(fā)送的超文本傳輸協(xié)議http請求,確定與uri對應(yīng)的服務(wù)器組,根據(jù)用戶標(biāo)識的一致性哈希計算結(jié)果從服務(wù)器組中確定出目標(biāo)服務(wù)器,將http請求發(fā)送至目標(biāo)服務(wù)器進(jìn)行處理,使得來自同一客戶端的http請求由同一個服務(wù)器提供web服務(wù);解決了現(xiàn)有技術(shù)中當(dāng)web服務(wù)器集群中增加服務(wù)器或者刪除服務(wù)器時,無法穩(wěn)定地向客戶端提供http服務(wù)的問題;實(shí)現(xiàn)了當(dāng)增減服務(wù)器以及整個系統(tǒng)服務(wù)時,大部分客戶端所發(fā)送的http請求,仍然由指定的服務(wù)器提供web服務(wù),不會受到增減服務(wù)器的任何影響的效果。附圖說明為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1a和圖1b是本發(fā)明一個實(shí)施例提供的http請求處理系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖;圖2是本發(fā)明一個實(shí)施例提供的http請求處理方法的流程圖;圖3是本發(fā)明一個實(shí)施例提供的一致性哈希算法的方法原理圖;圖4是本發(fā)明另一個實(shí)施例提供的http請求處理方法的流程圖;圖5是本發(fā)明一個實(shí)施例提供的http請求處理裝置的結(jié)構(gòu)方框圖;圖6是本發(fā)明另一個實(shí)施例提供的http請求處理裝置的結(jié)構(gòu)方框圖;圖7是本發(fā)明一個實(shí)施例提供的服務(wù)器的結(jié)構(gòu)示意圖。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。圖1a和圖1b是本發(fā)明一個實(shí)施例提供的http請求處理系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖。示意性的,該http請求處理系統(tǒng)包括:客戶端100、代理服務(wù)器120、服務(wù)器組a、服務(wù)器組b、隊(duì)列160和業(yè)務(wù)處理服務(wù)器組180。其中,服務(wù)器組a、服務(wù)器組b、隊(duì)列160和業(yè)務(wù)處理服務(wù)器組180均屬于web服務(wù)器。客戶端100是瀏覽器客戶端。可選地,瀏覽器客戶端向代理服務(wù)器發(fā)送http請求,http請求中攜帶有統(tǒng)一資源標(biāo)識符(uniformresourceidentifier,uri)和用戶標(biāo)識userid。其中,userid用于代表用戶身份。代理服務(wù)器120是代理用戶獲取的web服務(wù)的服務(wù)器。代理服務(wù)器120可以是反向代理(reverseproxy)服務(wù)器。其中,反向代理方式是指以代理服務(wù)器120來接受internet上的http請求,然后將http請求轉(zhuǎn)發(fā)給web服務(wù)器所在內(nèi)部網(wǎng)絡(luò)上的web服務(wù)器,并將從web服務(wù)器上得到的響應(yīng)結(jié)果反饋給客戶端100??蛇x地,代理服務(wù)器由虛擬機(jī)(virtualmachine,vm)或物理服務(wù)器實(shí)現(xiàn),本發(fā)明對代理服務(wù)器的具體實(shí)現(xiàn)形式不加以限定。可選地,代理服務(wù)器120中包括locator服務(wù)121和lua腳本122。其中,代理服務(wù)器120接收客戶端100發(fā)送的http請求;lua腳本122用于截獲http請求中攜帶的uri和用戶標(biāo)識,并將uri發(fā)送給locator服務(wù)121,locator服務(wù)121根據(jù)http請求中攜帶的uri確定與uri對應(yīng)的服務(wù)器組,該服務(wù)器組包括多臺響應(yīng)服務(wù)器;同時,lua腳本還接收locator服務(wù)121反饋的服務(wù)器組??蛇x地,lua腳本122還根據(jù)用戶標(biāo)識userid做一致性哈希算法,查找對應(yīng)服務(wù)器組中的一臺目標(biāo)服務(wù)器。服務(wù)器組a和服務(wù)器組b是將很多響應(yīng)服務(wù)器以負(fù)載均衡方式部署,同時提供同一種服務(wù)的一個群組。在客戶端100看來就像是只有一個響應(yīng)服務(wù)器。服務(wù)器組a和服務(wù)器組b中包含多個響應(yīng)服務(wù)器,每個響應(yīng)服務(wù)器均用于處理代理服務(wù)器120發(fā)送的http請求。可選地,服務(wù)器組a包括響應(yīng)服務(wù)器1、響應(yīng)服務(wù)器2、響應(yīng)服務(wù)器3和響應(yīng)服務(wù)器4,服務(wù)器組b包括響應(yīng)服務(wù)器5、響應(yīng)服務(wù)器6、響應(yīng)服務(wù)器7和響應(yīng)服務(wù)器8。本發(fā)明實(shí)施例對以上對服務(wù)器組a和服務(wù)器組b中的響應(yīng)服務(wù)器的數(shù)量的描述不加以限定。示意性的,服務(wù)器組a用于處理不需要向客戶端100反饋響應(yīng)的http請求,比如消息和通知;服務(wù)器組b用于處理需要向客戶端100反饋響應(yīng)的http請求。隊(duì)列160是一款分布式、隊(duì)列模型的消息中間件,用于接收目標(biāo)服務(wù)器(目標(biāo)服務(wù)器是響應(yīng)服務(wù)器中的一個)構(gòu)建的http對象,等待業(yè)務(wù)服務(wù)器組180的處理。隊(duì)列160可以由單獨(dú)的一個服務(wù)器實(shí)現(xiàn),也可以由一個虛擬機(jī)實(shí)現(xiàn),也可以集成在響應(yīng)服務(wù)器或業(yè)務(wù)處理服務(wù)器中來實(shí)現(xiàn)。業(yè)務(wù)處理服務(wù)器組180是將很多業(yè)務(wù)處理服務(wù)器集中起來以負(fù)載均衡方式部署,同時提供同一種服務(wù)的一個群組。業(yè)務(wù)處理服務(wù)器組180中包含多個業(yè)務(wù)處理服務(wù)器,業(yè)務(wù)處理服務(wù)器180用于從隊(duì)列160中獲取http對象并進(jìn)行處理??蛇x地,本實(shí)施例中業(yè)務(wù)處理服務(wù)器組180包括業(yè)務(wù)處理服務(wù)器1、業(yè)務(wù)處理服務(wù)器2、業(yè)務(wù)處理服務(wù)器3和業(yè)務(wù)處理服務(wù)器4,本發(fā)明實(shí)施例對此不加以限定。在一個具體的實(shí)現(xiàn)中,參考圖1b,代理服務(wù)器120是nginx反向代理服務(wù)器120,服務(wù)器組a包括netty-響應(yīng)服務(wù)器1、netty-響應(yīng)服務(wù)器2、netty-響應(yīng)服務(wù)器3和netty-響應(yīng)服務(wù)器4,服務(wù)器組b包括netty-響應(yīng)服務(wù)器5、netty-響應(yīng)服務(wù)器6、netty-響應(yīng)服務(wù)器7和netty-響應(yīng)服務(wù)器8。也即,服務(wù)器組a和服務(wù)器組b中的響應(yīng)服務(wù)器由netty服務(wù)器實(shí)現(xiàn)。其中,服務(wù)器組a和服務(wù)器組b屬于http響應(yīng)層,業(yè)務(wù)處理服務(wù)器屬于業(yè)務(wù)處理層。請參考圖2,本發(fā)明一個實(shí)施例提供的http請求處理方法的流程圖。本發(fā)明以該實(shí)施例應(yīng)用于圖1所述的系統(tǒng)來舉例說明。該http請求處理方法包括:步驟201,客戶端向代理服務(wù)器發(fā)送http請求。步驟202,代理服務(wù)器接收客戶端發(fā)送的http請求。可選地,http請求包括:uri和用戶標(biāo)識。每個uri用于定位一個或一組web資源??蛇x地,web資源是包括文本、圖片、音頻、視頻之類的網(wǎng)頁或網(wǎng)頁程序。步驟203,代理服務(wù)器確定與uri對應(yīng)的服務(wù)器組。可選地,每個服務(wù)器組包括至少兩個響應(yīng)服務(wù)器。步驟204,代理服務(wù)器根據(jù)用戶標(biāo)識的一致性哈希計算結(jié)果從服務(wù)器組中確定出目標(biāo)服務(wù)器。一致性哈希計算是一種用于將用戶標(biāo)識和服務(wù)器組中的服務(wù)器產(chǎn)生對應(yīng)關(guān)系的計算方式。比如,將用戶標(biāo)識a總是與響應(yīng)服務(wù)器1對應(yīng),將用戶標(biāo)識b總是與響應(yīng)服務(wù)器2對應(yīng),將用戶標(biāo)識c總是與響應(yīng)服務(wù)器3對應(yīng),將用戶標(biāo)識d總是與響應(yīng)服務(wù)器4對應(yīng)。當(dāng)服務(wù)器組中的響應(yīng)服務(wù)器未發(fā)生改變時,代理服務(wù)器使用一致性哈希計算,能夠?qū)碜杂脩魳?biāo)識a的http請求總是發(fā)送給響應(yīng)服務(wù)器1處理,將來自用戶標(biāo)識b的http請求總是發(fā)送給響應(yīng)服務(wù)器2處理,將來自用戶標(biāo)識c的http請求總是發(fā)送給響應(yīng)服務(wù)器3處理,將來自用戶標(biāo)識d的http請求總是發(fā)送給響應(yīng)服務(wù)器4處理。步驟205,代理服務(wù)器將http請求發(fā)送至目標(biāo)服務(wù)器進(jìn)行處理。綜上所述,本實(shí)施例提供的http請求處理方法,通過代理服務(wù)器接收客戶端發(fā)送的超文本傳輸協(xié)議http請求,確定與uri對應(yīng)的服務(wù)器組,根據(jù)用戶標(biāo)識的一致性哈希計算結(jié)果從服務(wù)器組中確定出目標(biāo)服務(wù)器,將http請求發(fā)送至目標(biāo)服務(wù)器進(jìn)行處理;解決了現(xiàn)有技術(shù)中當(dāng)web服務(wù)器集群中增加服務(wù)器或者刪除服務(wù)器時,無法穩(wěn)定地向客戶端提供http服務(wù)的問題;實(shí)現(xiàn)了當(dāng)增減服務(wù)器以及整個系統(tǒng)服務(wù)時,大部分客戶端所發(fā)送的http請求,仍然由指定的服務(wù)器提供web服務(wù),大部分客戶端不會受到增減服務(wù)器的任何影響,僅有少部分客戶端會收到增減服務(wù)器的影響的效果。請參考圖3,其示出了本發(fā)明一個實(shí)施例提供的一致性哈希算法的方法原理圖。一致性哈希將整個哈希值空間組織成一個虛擬的圓環(huán)。將各個響應(yīng)服務(wù)器使用hash算法進(jìn)行一個哈希,具體可以選擇服務(wù)器的ip或主機(jī)名作為關(guān)鍵字進(jìn)行哈希,這樣每臺機(jī)器就能確定其在哈希環(huán)上的位置??蛇x地,本實(shí)施例中以服務(wù)器組a中有4臺響應(yīng)服務(wù)器為例,分別是響應(yīng)服務(wù)器1、響應(yīng)服務(wù)器2、響應(yīng)服務(wù)器3和響應(yīng)服務(wù)器4,使用響應(yīng)服務(wù)器的主機(jī)名進(jìn)行哈希后在環(huán)形哈??臻g的位置如圖3所示。響應(yīng)服務(wù)器1與環(huán)形哈??臻g上的節(jié)點(diǎn)a對應(yīng),響應(yīng)服務(wù)器2與環(huán)形哈??臻g上的節(jié)點(diǎn)b對應(yīng),響應(yīng)服務(wù)器3與環(huán)形哈希空間上的節(jié)點(diǎn)c對應(yīng),響應(yīng)服務(wù)器4與環(huán)形哈希空間上的節(jié)點(diǎn)d對應(yīng)。當(dāng)代理服務(wù)器收到http請求后,對http請求中的用戶標(biāo)識計算哈希值(比如消息摘要算法md5),然后對用戶標(biāo)識的哈希值相對于4計算余數(shù),若余數(shù)為0,則將該http請求發(fā)送給與節(jié)點(diǎn)a對應(yīng)的響應(yīng)服務(wù)器1進(jìn)行處理;若余數(shù)為1,則將該http請求發(fā)送給與節(jié)點(diǎn)b對應(yīng)的響應(yīng)服務(wù)器2進(jìn)行處理;若余數(shù)為2,則將該http請求發(fā)送給與節(jié)點(diǎn)c對應(yīng)的響應(yīng)服務(wù)器3進(jìn)行處理;若余數(shù)為3,則將該http請求發(fā)送給與節(jié)點(diǎn)d對應(yīng)的相應(yīng)服務(wù)器4進(jìn)行處理。請參考圖4,本發(fā)明實(shí)施例四提供的http請求處理方法的流程圖。本發(fā)明以該實(shí)施例應(yīng)用于圖1所述系統(tǒng)和圖3所述算法來舉例說明。該http請求處理方法包括:步驟401,客戶端向代理服務(wù)器發(fā)送http請求??蛇x地,客戶端是瀏覽器客戶端,常見的瀏覽客戶端包括:internetexplorer(ie瀏覽器)、mozillafirefox(火狐瀏覽器)、opera和safari。步驟402,代理服務(wù)器接收客戶端發(fā)送的http請求??蛇x地,http請求攜帶有uri和用戶標(biāo)識??蛇x地,uri是一個用于標(biāo)識某一互聯(lián)網(wǎng)資源名稱的字符串。該種標(biāo)識允許用戶對任何(包括本地和互聯(lián)網(wǎng))的資源通過特定的協(xié)議進(jìn)行交互操作。uri由包括確定語法和相關(guān)協(xié)議的方案所定義。可選地,用戶標(biāo)識是因特網(wǎng)上用于識別用戶身份的名字。步驟403,代理服務(wù)器通過lua腳本向locator服務(wù)發(fā)送uri。示意性的,nginx反向代理服務(wù)器通過lua腳本截獲http請求中的uri和用戶標(biāo)識,并向locator服務(wù)發(fā)送uri。locator服務(wù)是nginx反向代理服務(wù)器中的一個功能組件,用于定義每個uri的處理規(guī)則。示意性的,表一示出了該處理規(guī)則:表一uri服務(wù)器組/xxx.jpg服務(wù)器組a/yyy.html服務(wù)器組b步驟404,代理服務(wù)器通過locator服務(wù)確定與uri對應(yīng)的服務(wù)器組。locator服務(wù)會查詢與uri對應(yīng)的服務(wù)器組。以圖1為例,locator服務(wù)會查詢出服務(wù)器組a或服務(wù)器組b作為與uri對應(yīng)的服務(wù)器組。示意性的,locator服務(wù)通過http響應(yīng)層所注冊的method(方法)解析uri,根據(jù)uri映射到對應(yīng)的服務(wù)器組。method包括:get方法、post方法等。locator服務(wù)會將與uri對應(yīng)的服務(wù)器組,反饋給lua腳本。步驟405,代理服務(wù)器通過lua腳本接收locator服務(wù)反饋的服務(wù)器組。示意性的,nginx反向代理服務(wù)器通過lua腳本接收locator服務(wù)確定并反饋的服務(wù)器組。步驟406,代理服務(wù)器對用戶標(biāo)識按照預(yù)設(shè)的哈希算法計算哈希值。示意性的,nginx反向代理服務(wù)器通過lua腳本對用戶標(biāo)識按照預(yù)設(shè)的哈希算法計算哈希值。預(yù)設(shè)的哈希算法包括:消息摘要算法第二版md2、消息摘要算法第三版md3、消息摘要算法第五版md5、安全哈希算法sha-1等等哈希算法中的任意一種。比如,nginx反向代理服務(wù)器對該用戶標(biāo)識計算出的哈希值為1011101111。步驟407,代理服務(wù)器將哈希值散列到環(huán)形哈??臻g上的目標(biāo)節(jié)點(diǎn)??蛇x地,環(huán)形哈??臻g上的節(jié)點(diǎn)與服務(wù)器組中的服務(wù)器存在對應(yīng)關(guān)系,如圖3所示。nginx反向代理服務(wù)器對用戶標(biāo)識的哈希值相對于n求余,n是環(huán)形哈??臻g上的節(jié)點(diǎn)數(shù)。以n為4為例,余數(shù)0對應(yīng)響應(yīng)服務(wù)器1,余數(shù)1對應(yīng)響應(yīng)服務(wù)器2,余數(shù)2對應(yīng)響應(yīng)服務(wù)器3,余數(shù)3對應(yīng)響應(yīng)服務(wù)器4。步驟408,代理服務(wù)器將與目標(biāo)節(jié)點(diǎn)對應(yīng)的服務(wù)器確定為目標(biāo)服務(wù)器。示意性的,由于用戶標(biāo)識的哈希值,相對于n的余數(shù)為1,在哈希環(huán)形空間上對應(yīng)的響應(yīng)服務(wù)器2,即確定響應(yīng)服務(wù)器2為目標(biāo)服務(wù)器。步驟409,代理服務(wù)器將http請求發(fā)送至目標(biāo)服務(wù)器進(jìn)行處理。示意性的,nginx反向代理服務(wù)器將http請求發(fā)送至響應(yīng)服務(wù)器2進(jìn)行處理。步驟410,目標(biāo)服務(wù)器確定http請求的請求類型。示意性的,響應(yīng)服務(wù)器2確定http請求的請求類型??蛇x地,請求類型分為需要反饋響應(yīng)消息的http請求和不需要反饋響應(yīng)消息的http請求??蛇x地,不需要反饋響應(yīng)消息的http請求包括消息和通知。若請求類型是不需要反饋響應(yīng)消息的http請求,則執(zhí)行步驟410至步驟412,若請求類型是需要反饋響應(yīng)消息的http請求,則執(zhí)行步驟413至步驟415。步驟411,若請求類型是不需要反饋響應(yīng)消息的http請求,目標(biāo)服務(wù)器根據(jù)http請求構(gòu)建http對象,將http對象發(fā)送至隊(duì)列中。示意性的,當(dāng)請求類型是不需要反饋響應(yīng)消息的http請求時,響應(yīng)服務(wù)器2根據(jù)http請求構(gòu)建http對象,并將http對象發(fā)送至隊(duì)列中。步驟412,業(yè)務(wù)處理服務(wù)器從隊(duì)列中獲取http對象。步驟413,業(yè)務(wù)處理服務(wù)器對http對象進(jìn)行處理。步驟414,若請求類型是需要反饋響應(yīng)消息的http請求,目標(biāo)服務(wù)器生成http請求的響應(yīng)消息。示意性的,當(dāng)請求類型是需要反饋響應(yīng)消息的http請求時,響應(yīng)服務(wù)器2對http請求進(jìn)行處理,并根據(jù)處理結(jié)果生成http請求的響應(yīng)消息。步驟415,目標(biāo)服務(wù)器將響應(yīng)消息發(fā)送給代理服務(wù)器。步驟416,代理服務(wù)器將響應(yīng)消息反饋給客戶端。綜上所述,本實(shí)施例提供的http請求處理方法,通過代理服務(wù)器接收客戶端發(fā)送的超文本傳輸協(xié)議http請求,確定與uri對應(yīng)的服務(wù)器組,根據(jù)用戶標(biāo)識的一致性哈希計算結(jié)果從服務(wù)器組中確定出目標(biāo)服務(wù)器,將http請求發(fā)送至目標(biāo)服務(wù)器進(jìn)行處理;解決了現(xiàn)有技術(shù)中當(dāng)web服務(wù)器集群中增加服務(wù)器或者刪除服務(wù)器時,無法穩(wěn)定地向客戶端提供http服務(wù)的問題;實(shí)現(xiàn)了當(dāng)增減服務(wù)器以及整個系統(tǒng)服務(wù)時,大部分客戶端所發(fā)送的http請求,仍然由指定的服務(wù)器復(fù)用已有的連接提供web服務(wù),大部分客戶端不會受到增減服務(wù)器的任何影響,僅有少部分客戶端會收到增減服務(wù)器的影響的效果。本實(shí)施例提供的http請求處理方法,通過代理服務(wù)器中的lua腳本一致性哈希算法和locator服務(wù)完成對用戶的定位,解決了現(xiàn)有技術(shù)中增加服務(wù)器或者刪除服務(wù)器時,對原有用戶訪問響應(yīng)服務(wù)器波動大的問題。本實(shí)施例提供的http請求處理方法,還通過對不需要反饋響應(yīng)消息的http請求,構(gòu)建http對象緩存至隊(duì)列中,由業(yè)務(wù)處理服務(wù)器對隊(duì)列中的http對象進(jìn)行處理,實(shí)現(xiàn)了響應(yīng)服務(wù)器的發(fā)送過程和業(yè)務(wù)處理服務(wù)器的接收過程的解耦,使得響應(yīng)服務(wù)器發(fā)生增加或者減少時,不影響業(yè)務(wù)處理服務(wù)器的接收過程和處理過程,或者,業(yè)務(wù)處理服務(wù)器發(fā)生增加或者減少時,不影響響應(yīng)服務(wù)器的發(fā)送過程。換句話說,與消息和通知有關(guān)的服務(wù)過程的更新,對整個系統(tǒng)來說是完全無感知的。本實(shí)施例提供的http請求處理方法,還通過利用netty服務(wù)器的內(nèi)存分配回收機(jī)制,可以很好的降低java虛擬機(jī)的垃圾回收(gabagecollection,gc),提高整個系統(tǒng)的處理吞吐量。下述為本發(fā)明裝置實(shí)施例,可以用于執(zhí)行本發(fā)明方法實(shí)施例。對于本發(fā)明裝置實(shí)施例中未披露的細(xì)節(jié),請參照本發(fā)明方法實(shí)施例。請參考圖5其示出了發(fā)明一個實(shí)施例提供的http請求處理裝置的結(jié)構(gòu)方框圖。該http請求處理裝置可以通過專用硬件電路,或者,軟硬件的結(jié)合來實(shí)現(xiàn)成為服務(wù)器的全部或一部分。本發(fā)明以該實(shí)施例應(yīng)用于圖1所述系統(tǒng)和圖3所述算法來舉例說明。該http請求處理裝置,包括:第一接收模塊501,用于接收客戶端發(fā)送的超文本傳輸協(xié)議http請求??蛇x地,http請求攜帶有統(tǒng)一資源標(biāo)識符uri和用戶標(biāo)識。第一確定模塊502,用于確定與uri對應(yīng)的服務(wù)器組??蛇x地,服務(wù)器組包括至少兩個服務(wù)器。哈希計算模塊503,用于根據(jù)用戶標(biāo)識的一致性哈希計算結(jié)果從服務(wù)器組中確定出目標(biāo)服務(wù)器。第一發(fā)送模塊504,用于將http請求發(fā)送至目標(biāo)服務(wù)器進(jìn)行處理。綜上所述,本實(shí)施例提供的http請求處理裝置,通過代理服務(wù)器接收客戶端發(fā)送的超文本傳輸協(xié)議http請求,確定與uri對應(yīng)的服務(wù)器組,根據(jù)用戶標(biāo)識的一致性哈希計算結(jié)果從服務(wù)器組中確定出目標(biāo)服務(wù)器,將http請求發(fā)送至目標(biāo)服務(wù)器進(jìn)行處理;解決了現(xiàn)有技術(shù)中當(dāng)web服務(wù)器集群中增加服務(wù)器或者刪除服務(wù)器時,無法穩(wěn)定地向客戶端提供http服務(wù)的問題;實(shí)現(xiàn)了當(dāng)增減服務(wù)器以及整個系統(tǒng)服務(wù)時,大部分客戶端所發(fā)送的http請求,仍然由指定的服務(wù)器復(fù)用已有的連接提供web服務(wù),大部分客戶端不會受到增減服務(wù)器的任何影響,僅有少部分客戶端會收到增減服務(wù)器的影響的效果。請參考圖6,其示出了本發(fā)明一個實(shí)施例提供的http請求處理裝置的結(jié)構(gòu)方框圖。該http請求處理裝置可以通過專用硬件電路,或者,軟硬件的結(jié)合來實(shí)現(xiàn)成為服務(wù)器的全部或一部分。本發(fā)明以該實(shí)施例應(yīng)用于圖1所述系統(tǒng)來舉例說明。該http請求處理裝置,包括:第一接收模塊601,用于接收客戶端發(fā)送的http請求。可選地,http請求攜帶有uri和用戶標(biāo)識。第一確定模塊602,用于確定與uri對應(yīng)的服務(wù)器組??蛇x地,服務(wù)器組包括至少兩個服務(wù)器??蛇x地,第一確定模塊602包括第一發(fā)送單元6021、第一確定單元6022和第一接收單元6023。第一發(fā)送單元6021,用于通過lua腳本向locator服務(wù)發(fā)送uri。第一確定單元6022,用于通過locator服務(wù)確定與uri對應(yīng)的服務(wù)器組。第一接收單元6023,用于通過lua腳本接收locator服務(wù)反饋的服務(wù)器組。哈希計算模塊603,用于根據(jù)用戶標(biāo)識的一致性哈希計算結(jié)果從服務(wù)器組中確定出目標(biāo)服務(wù)器??蛇x地,哈希計算模塊603包括哈希計算單元6031、數(shù)值散布單元6032和目標(biāo)確定單元6033。哈希計算單元6031,用于對用戶標(biāo)識按照預(yù)設(shè)的哈希算法計算哈希值。數(shù)值散布單元6032,用于將哈希值散列到環(huán)形哈??臻g上的目標(biāo)節(jié)點(diǎn)??蛇x地,環(huán)形哈??臻g上的節(jié)點(diǎn)與服務(wù)器組中的服務(wù)器存在對應(yīng)關(guān)系。目標(biāo)確定單元6033,用于將與目標(biāo)節(jié)點(diǎn)對應(yīng)的服務(wù)器確定為目標(biāo)服務(wù)器。第一發(fā)送模塊604,用于將http請求發(fā)送至目標(biāo)服務(wù)器進(jìn)行處理。類型確定模塊605,用于目標(biāo)服務(wù)器確定http請求的請求類型。請求處理模塊606,用于當(dāng)請求類型是不需要反饋響應(yīng)消息的http請求時,目標(biāo)服務(wù)器根據(jù)http請求構(gòu)建http對象,將http對象發(fā)送至隊(duì)列中;以便響應(yīng)服務(wù)器從隊(duì)列中獲取http對象并處理。同時,請求處理模塊606,還用于當(dāng)求類型是需要反饋響應(yīng)消息的http請求時,目標(biāo)服務(wù)器生成http請求的響應(yīng)消息,通過代理服務(wù)器向客戶端反饋響應(yīng)消息。綜上所述,本實(shí)施例提供的http請求處理裝置,通過代理服務(wù)器接收客戶端發(fā)送的超文本傳輸協(xié)議http請求,確定與uri對應(yīng)的服務(wù)器組,根據(jù)用戶標(biāo)識的一致性哈希計算結(jié)果從服務(wù)器組中確定出目標(biāo)服務(wù)器,將http請求發(fā)送至目標(biāo)服務(wù)器進(jìn)行處理;解決了現(xiàn)有技術(shù)中當(dāng)web服務(wù)器集群中增加服務(wù)器或者刪除服務(wù)器時,無法穩(wěn)定地向客戶端提供http服務(wù)的問題;實(shí)現(xiàn)了當(dāng)增減服務(wù)器以及整個系統(tǒng)服務(wù)時,大部分客戶端所發(fā)送的http請求,仍然由指定的服務(wù)器復(fù)用已有的連接提供web服務(wù),大部分客戶端不會受到增減服務(wù)器的任何影響,僅有少部分客戶端會收到增減服務(wù)器的影響的效果。本實(shí)施例提供的http請求處理裝置,通過代理服務(wù)器中的lua腳本一致性哈希算法和locator服務(wù)完成對用戶的定位,解決了現(xiàn)有技術(shù)中增加服務(wù)器或者刪除服務(wù)器時,對原有用戶訪問響應(yīng)服務(wù)器波動大的問題。本實(shí)施例提供的http請求處理裝置,還通過對不需要反饋響應(yīng)消息的http請求,構(gòu)建http對象緩存至隊(duì)列中,由業(yè)務(wù)處理服務(wù)器對隊(duì)列中的http對象進(jìn)行處理,實(shí)現(xiàn)了響應(yīng)服務(wù)器的發(fā)送過程和業(yè)務(wù)處理服務(wù)器的接收過程的解耦,使得響應(yīng)服務(wù)器發(fā)生增加或者減少時,不影響業(yè)務(wù)處理服務(wù)器的接收過程和處理過程,或者,業(yè)務(wù)處理服務(wù)器發(fā)生增加或者減少時,不影響響應(yīng)服務(wù)器的發(fā)送過程。換句話說,與消息和通知有關(guān)的服務(wù)過程的更新,對整個系統(tǒng)來說是完全無感知的。本實(shí)施例提供的http請求處理裝置,還通過利用netty服務(wù)器的內(nèi)存分配回收機(jī)制,可以很好的降低java虛擬機(jī)的垃圾回收(gabagecollection,gc),提高整個系統(tǒng)的處理吞吐量。圖7本發(fā)明一個實(shí)施例提供的服務(wù)器的結(jié)構(gòu)示意圖。該服務(wù)器可以是代理服務(wù)器120或服務(wù)器組a或服務(wù)器組b或業(yè)務(wù)處理服務(wù)器組180中的服務(wù)器。具體來講:服務(wù)器700包括中央處理單元(cpu)701、包括隨機(jī)存取存儲器(ram)702和只讀存儲器(rom)703的系統(tǒng)存儲器704,以及連接系統(tǒng)存儲器704和中央處理單元701的系統(tǒng)總線705。服務(wù)器700還包括幫助計算機(jī)內(nèi)的各個器件之間傳輸信息的基本輸入/輸出系統(tǒng)(i/o系統(tǒng))706,和用于存儲操作系統(tǒng)713、應(yīng)用程序714和其他程序模塊715的大容量存儲設(shè)備707?;据斎?輸出系統(tǒng)706包括有用于顯示信息的顯示器708和用于用戶輸入信息的諸如鼠標(biāo)、鍵盤之類的輸入設(shè)備709。其中顯示器708和輸入設(shè)備709都通過連接到系統(tǒng)總線705的輸入輸出控制器710連接到中央處理單元701。基本輸入/輸出系統(tǒng)706還可以包括輸入輸出控制器710以用于接收和處理來自鍵盤、鼠標(biāo)、或電子觸控筆等多個其他設(shè)備的輸入。類似地,輸入輸出控制器710還提供輸出到顯示屏、打印機(jī)或其他類型的輸出設(shè)備。大容量存儲設(shè)備707通過連接到系統(tǒng)總線705的大容量存儲控制器(未示出)連接到中央處理單元701。大容量存儲設(shè)備707及其相關(guān)聯(lián)的計算機(jī)可讀介質(zhì)為服務(wù)器700提供非易失性存儲。也就是說,大容量存儲設(shè)備707可以包括諸如硬盤或者cd-rom驅(qū)動器之類的計算機(jī)可讀介質(zhì)(未示出)。不失一般性,計算機(jī)可讀介質(zhì)可以包括計算機(jī)存儲介質(zhì)和通信介質(zhì)。計算機(jī)存儲介質(zhì)包括以用于存儲諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機(jī)存儲介質(zhì)包括ram、rom、eprom、eeprom、閃存或其他固態(tài)存儲其技術(shù),cd-rom、dvd或其他光學(xué)存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設(shè)備。當(dāng)然,本領(lǐng)域技術(shù)人員可知計算機(jī)存儲介質(zhì)不局限于上述幾種。上述的系統(tǒng)存儲器704和大容量存儲設(shè)備707可以統(tǒng)稱為存儲器。根據(jù)本發(fā)明的各種實(shí)施例,服務(wù)器700還可以通過諸如因特網(wǎng)等網(wǎng)絡(luò)連接到網(wǎng)絡(luò)上的遠(yuǎn)程計算機(jī)運(yùn)行。也即服務(wù)器700可以通過連接在系統(tǒng)總線705上的網(wǎng)絡(luò)接口單元711連接到網(wǎng)絡(luò)712,或者說,也可以使用網(wǎng)絡(luò)接口單元711來連接到其他類型的網(wǎng)絡(luò)或遠(yuǎn)程計算機(jī)系統(tǒng)(未示出)。上述存儲器還包括一個或者一個以上的程序,一個或者一個以上程序存儲于存儲器中,被配置由cpu執(zhí)行實(shí)現(xiàn)如圖2和圖4任一所示出的http請求處理方法。上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
隆尧县| 康保县| 延边| 仪征市| 定边县| 长兴县| 北京市| 遂川县| 蓬安县| 皮山县| 宜兰市| 含山县| 凯里市| 潮安县| 孝义市| 贞丰县| 元阳县| 沂水县| 伊金霍洛旗| 什邡市| 莒南县| 黔江区| 阜宁县| 石首市| 洛南县| 高阳县| 莱阳市| 芷江| 兴海县| 禄丰县| 延长县| 平塘县| 拜城县| 巩义市| 玉门市| 桐庐县| 弥渡县| 达日县| 玉树县| 阿尔山市| 余江县|