本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別是涉及一種業(yè)務(wù)請求分配系統(tǒng)、方法和裝置。
背景技術(shù):
業(yè)務(wù)處理系統(tǒng)在處理業(yè)務(wù)請求時,會對不同的業(yè)務(wù)請求采用不同的業(yè)務(wù)算法進(jìn)行處理,這就涉及業(yè)務(wù)請求的分配問題。比如在互聯(lián)網(wǎng)廣告領(lǐng)域,處理廣告請求時會根據(jù)廣告請求的不同而采用不同的業(yè)務(wù)算法進(jìn)行處理。
目前的業(yè)務(wù)處理系統(tǒng)在分配業(yè)務(wù)請求時,需要在接入服務(wù)器上人工設(shè)置業(yè)務(wù)算法分流配置文件,維護(hù)人員需要在該業(yè)務(wù)算法分流配置文件中對哪些計算服務(wù)器加載了哪種業(yè)務(wù)算法進(jìn)行詳細(xì)地配置。這樣接入服務(wù)器就可以根據(jù)該業(yè)務(wù)算法分流配置文件,將業(yè)務(wù)請求轉(zhuǎn)發(fā)給實(shí)現(xiàn)相應(yīng)業(yè)務(wù)算法的計算服務(wù)器進(jìn)行計算。
然而,目前的業(yè)務(wù)處理系統(tǒng),當(dāng)維護(hù)人員在啟用或者停用計算服務(wù)器上的業(yè)務(wù)算法時,需要在相應(yīng)的計算服務(wù)器上手動修改,而且需要手動修改接入服務(wù)器上的業(yè)務(wù)算法分流配置文件,操作復(fù)雜,維護(hù)成本較高。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對目前的業(yè)務(wù)處理系統(tǒng)在維護(hù)時操作復(fù)雜,維護(hù)成本較高的技術(shù)問題,提供一種業(yè)務(wù)請求分配系統(tǒng)、方法和裝置。
一種業(yè)務(wù)請求分配系統(tǒng),所述系統(tǒng)包括:計算服務(wù)器集群、管理服務(wù)器和接入服務(wù)器;
所述計算服務(wù)器集群用于實(shí)時向管理服務(wù)器上報集群狀態(tài);
所述管理服務(wù)器用于實(shí)時根據(jù)所述集群狀態(tài)生成集群快照;
所述接入服務(wù)器用于實(shí)時從管理服務(wù)器獲取集群快照,并根據(jù)獲取的集群快照更新動態(tài)路由表;所述動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的 映射關(guān)系;
所述接入服務(wù)器還用于接收業(yè)務(wù)請求,獲取所述業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識,并根據(jù)所述動態(tài)路由表將所述業(yè)務(wù)請求轉(zhuǎn)發(fā)至計算服務(wù)器集群中與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器。
一種業(yè)務(wù)請求分配方法,所述方法包括:
接入服務(wù)器在管理服務(wù)器接收計算服務(wù)器集群實(shí)時上報的集群狀態(tài)并實(shí)時根據(jù)所述集群狀態(tài)生成集群快照后,實(shí)時從管理服務(wù)器獲取集群快照;
接入服務(wù)器根據(jù)獲取的集群快照更新動態(tài)路由表;所述動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的映射關(guān)系;
接入服務(wù)器接收業(yè)務(wù)請求,獲取所述業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識;
接入服務(wù)器根據(jù)所述動態(tài)路由表將所述業(yè)務(wù)請求轉(zhuǎn)發(fā)至計算服務(wù)器集群中與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器。
一種業(yè)務(wù)請求分配裝置,所述裝置包括:
集群快照獲取模塊,用于在管理服務(wù)器接收計算服務(wù)器集群實(shí)時上報的集群狀態(tài)并實(shí)時根據(jù)所述集群狀態(tài)生成集群快照后,實(shí)時從管理服務(wù)器獲取集群快照;
動態(tài)路由表管理模塊,用于根據(jù)獲取的集群快照更新動態(tài)路由表;所述動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的映射關(guān)系;
業(yè)務(wù)請求處理模塊,用于接收業(yè)務(wù)請求,獲取所述業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識;
轉(zhuǎn)發(fā)模塊,用于根據(jù)所述動態(tài)路由表將所述業(yè)務(wù)請求轉(zhuǎn)發(fā)至計算服務(wù)器集群中與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器。
上述業(yè)務(wù)請求分配系統(tǒng)、方法和裝置,計算服務(wù)器集群主動地實(shí)時向管理服務(wù)器上報集群狀態(tài),這樣管理服務(wù)器就可以實(shí)時根據(jù)集群狀態(tài)生成集群快照,接入服務(wù)器實(shí)時從管理服務(wù)器獲取集群快照,并根據(jù)獲取的集群快照更新動態(tài) 路由表。從而接入服務(wù)器在接收到業(yè)務(wù)請求后,就可以根據(jù)更新的動態(tài)路由表分配業(yè)務(wù)請求。這樣當(dāng)維護(hù)人員對計算服務(wù)器集群進(jìn)行變更時,計算服務(wù)器集群發(fā)生的變動都可以自動、實(shí)時地反饋到動態(tài)路由表中,可自適應(yīng)地轉(zhuǎn)發(fā)業(yè)務(wù)請求給相應(yīng)的計算服務(wù)器,而且降低了對維護(hù)人員的要求,降低了維護(hù)成本。
附圖說明
圖1為一個實(shí)施例中業(yè)務(wù)請求分配系統(tǒng)的應(yīng)用環(huán)境圖;
圖2為另一個實(shí)施例中業(yè)務(wù)請求分配系統(tǒng)的應(yīng)用環(huán)境圖;
圖3為一個實(shí)施例中業(yè)務(wù)請求分配方法的流程示意圖;
圖4為另一個實(shí)施例中業(yè)務(wù)請求分配方法的流程示意圖;
圖5為一個實(shí)施例中根據(jù)動態(tài)路由表將業(yè)務(wù)請求轉(zhuǎn)發(fā)至計算服務(wù)器集群中與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器的步驟的流程示意圖;
圖6為再一個實(shí)施例中業(yè)務(wù)請求分配方法的流程示意圖;
圖7為一個具體應(yīng)用場景中廣告請求分配方法的時序圖;
圖8為一個實(shí)施例中用于實(shí)現(xiàn)業(yè)務(wù)請求分配方法的服務(wù)器的結(jié)構(gòu)示意圖;
圖9為一個實(shí)施例中業(yè)務(wù)請求分配裝置的結(jié)構(gòu)框圖;
圖10為另一個實(shí)施例中業(yè)務(wù)請求分配裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,在一個實(shí)施例中,提供了一種業(yè)務(wù)請求分配系統(tǒng)100,用于實(shí)現(xiàn)一種業(yè)務(wù)請求分配方法。業(yè)務(wù)請求分配系統(tǒng)100包括:接入服務(wù)器102、計算服務(wù)器集群104和管理服務(wù)器106。其中,接入服務(wù)器102構(gòu)成接入層,計算服務(wù)器集群104構(gòu)成計算層。接入服務(wù)器102可以為一個或者多個,接入服務(wù)器102統(tǒng)一接收業(yè)務(wù)請求,將業(yè)務(wù)請求路由至計算服務(wù)器集群104中的計算服務(wù)器。計算服務(wù)器集群104是若干計算服務(wù)器的集合,每個計算服務(wù)器具有加載業(yè)務(wù) 算法并采用該業(yè)務(wù)算法處理業(yè)務(wù)請求的功能。管理服務(wù)器106可以為一個或者多個,管理服務(wù)器106具有共享集群狀態(tài)、共享集群快照以及通知的功能。
如圖2所示,在另一個實(shí)施例中,一種業(yè)務(wù)請求分配系統(tǒng)200包括接入服務(wù)器102、計算服務(wù)器集群104、管理服務(wù)器106和配置服務(wù)器108。配置服務(wù)器108具有接收維護(hù)人員的維護(hù)指令并執(zhí)行相應(yīng)的維護(hù)操作的功能。
如圖3所示,在一個實(shí)施例中,提供了一種業(yè)務(wù)請求分配方法,本實(shí)施例主要以該方法應(yīng)用于上述圖1中的業(yè)務(wù)請求分配系統(tǒng)100,以及圖2中業(yè)務(wù)請求分配系統(tǒng)200中的接入服務(wù)器102來舉例說明。該方法具體包括如下步驟:
步驟302,在管理服務(wù)器接收計算服務(wù)器集群實(shí)時上報的集群狀態(tài)并實(shí)時根據(jù)集群狀態(tài)生成集群快照后,實(shí)時從管理服務(wù)器獲取集群快照。
具體地,參照圖4,計算服務(wù)器集群中的所有計算服務(wù)器會實(shí)時向管理服務(wù)器上報集群狀態(tài)。計算服務(wù)器集群中的所有計算服務(wù)器,可以在各自的狀態(tài)發(fā)生變化時,實(shí)時向管理服務(wù)器上報集群狀態(tài)。
集群狀態(tài)是指能夠反映計算服務(wù)器集群的狀態(tài)的信息。在一個實(shí)施例中,集群狀態(tài)包括計算服務(wù)器狀態(tài)和業(yè)務(wù)算法狀態(tài)。
計算服務(wù)器狀態(tài)可包括計算服務(wù)器是否正常工作、計算服務(wù)器的負(fù)載狀態(tài)以及計算服務(wù)器所屬的計算服務(wù)器子集。負(fù)載狀態(tài)可以用相應(yīng)計算服務(wù)器正在處理的業(yè)務(wù)請求數(shù)量來表示,也可以用處理器占用率和/或內(nèi)存占用率來表示。通過實(shí)時的計算服務(wù)器狀態(tài),可以實(shí)時檢測出計算服務(wù)器集群中各計算服務(wù)器各自發(fā)生的變化。
進(jìn)一步地,業(yè)務(wù)算法狀態(tài)可包括業(yè)務(wù)算法啟用、業(yè)務(wù)算法停用以及業(yè)務(wù)算法版本更新等。其中業(yè)務(wù)包括用戶注冊業(yè)務(wù)、資源請求業(yè)務(wù)以及云計算業(yè)務(wù)等。資源請求業(yè)務(wù)的資源包括廣告、媒體文件以及網(wǎng)頁等。業(yè)務(wù)算法可以是任意的用來處理業(yè)務(wù)請求的計算方法,當(dāng)業(yè)務(wù)請求為廣告請求時,業(yè)務(wù)算法包括廣告排序算法、廣告打分算法以及廣告評估算法等。
快照(Snapshot)是關(guān)于指定數(shù)據(jù)集合的一個完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個時間點(diǎn)(比如,拷貝開始的時間點(diǎn))的映像??煺湛梢允瞧渌硎镜臄?shù)據(jù)的一個副本,也可以是數(shù)據(jù)的一個復(fù)制品。在一個實(shí)施例中,管理服 務(wù)器在生成集群快照時,可以在管理服務(wù)器第一次寫集群狀態(tài)時復(fù)制集群狀態(tài)的內(nèi)容以生成集群快照。集群快照可以為XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語言)格式。
在一個實(shí)施例中,管理服務(wù)器生成的集群快照包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器地址。在一個實(shí)施例中,集群快照包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器子集標(biāo)識和計算服務(wù)器地址。其中業(yè)務(wù)算法標(biāo)識用于唯一標(biāo)識出一種業(yè)務(wù)算法,計算服務(wù)器子集是包含于計算服務(wù)器集群的若干計算服務(wù)器的集合,計算服務(wù)器子集標(biāo)識則用來唯一標(biāo)識出該計算服務(wù)器子集。劃分計算服務(wù)器子集便于計算服務(wù)器的管理以及負(fù)載均衡。計算服務(wù)器地址則可以用來定位計算服務(wù)器的位置,方便通信。
舉例說明,集群快照可表示為如下所示:
其中,xml version="1.0"表示采用的XML版本為1.0。encoding="utf-8",表示采用utf-8格式編碼方式。Version ver="1"表示集群快照的版本為1。module_name="scoring_1"表示計算服務(wù)器子集名稱為scoring_1。module_id="10"表示計算服務(wù)器子集編號是10。Solist num="1"attr="common"表示算法列表序號為1,屬性值為common。So algid="201.1.0"表示業(yè)務(wù)算法編號為201.1.0,該業(yè)務(wù)算法編號可以同時表示相應(yīng)業(yè)務(wù)算法的版本號,so是linux系統(tǒng)下的動態(tài)庫文 件的擴(kuò)展名。machine ip="xxx.xxx.xxx.xxx"port="50000"表示相應(yīng)的計算服務(wù)器IP地址為xxx.xxx.xxx.xxx,端口號為50000。本例子中,業(yè)務(wù)算法標(biāo)識包括算法列表序號和業(yè)務(wù)算法編號,計算服務(wù)器子集標(biāo)識包括計算服務(wù)器子集名稱和計算服務(wù)器子集編號,計算服務(wù)器地址包括計算服務(wù)器的IP地址和端口號。
接入服務(wù)器實(shí)時從管理服務(wù)器獲取集群快照,可以在接收到管理服務(wù)器發(fā)出的生成集群快照的通知后,立即從管理服務(wù)器獲取相應(yīng)的集群快照。接入服務(wù)器也可以每隔預(yù)設(shè)時間間隔從管理服務(wù)器請求獲取集群快照,該預(yù)設(shè)時間間隔非常短時可以認(rèn)為是實(shí)時的。
步驟304,根據(jù)獲取的集群快照更新動態(tài)路由表;動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的映射關(guān)系。
路由表主要存儲有指向特定網(wǎng)絡(luò)地址的路徑,動態(tài)路由表表示該路由表是根據(jù)實(shí)時獲取的集群快照而動態(tài)變化的。動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的映射關(guān)系,比如若業(yè)務(wù)算法標(biāo)識為業(yè)務(wù)算法編號,計算服務(wù)器地址為計算服務(wù)器IP地址和端口號,則動態(tài)路由表可表示為業(yè)務(wù)算法編號與計算服務(wù)器IP地址及端口號的映射關(guān)系。接入服務(wù)器具有路由模塊,用于實(shí)現(xiàn)路由功能。
步驟306,接收業(yè)務(wù)請求,獲取業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識。
具體地,接入服務(wù)器可以事先存儲業(yè)務(wù)請求類型和業(yè)務(wù)算法標(biāo)識的映射關(guān)系,從而接入服務(wù)器在接收到業(yè)務(wù)請求后,根據(jù)該映射關(guān)系獲取該業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識。接入服務(wù)器也可以直接從業(yè)務(wù)請求中提取業(yè)務(wù)請求所攜帶的業(yè)務(wù)算法標(biāo)識。
步驟308,根據(jù)動態(tài)路由表將業(yè)務(wù)請求轉(zhuǎn)發(fā)至計算服務(wù)器集群中與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器。
接入服務(wù)器具有路由功能,可根據(jù)動態(tài)路由表所包括的業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的映射關(guān)系,對業(yè)務(wù)請求進(jìn)行路由,將業(yè)務(wù)請求轉(zhuǎn)發(fā)至計算服務(wù)器集群中與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器。
具體地,接入服務(wù)器可從動態(tài)路由表中查詢獲取的業(yè)務(wù)算法標(biāo)識所對應(yīng)的計算服務(wù)器地址,從而按照查詢的計算服務(wù)器地址的路由路徑,將業(yè)務(wù)請求轉(zhuǎn) 發(fā)至查詢的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。
上述業(yè)務(wù)請求分配方法,計算服務(wù)器集群主動地實(shí)時向管理服務(wù)器上報集群狀態(tài),這樣管理服務(wù)器就可以實(shí)時根據(jù)集群狀態(tài)生成集群快照,接入服務(wù)器實(shí)時從管理服務(wù)器獲取集群快照,并根據(jù)獲取的集群快照更新動態(tài)路由表。從而接入服務(wù)器在接收到業(yè)務(wù)請求后,就可以根據(jù)更新的動態(tài)路由表分配業(yè)務(wù)請求。這樣當(dāng)維護(hù)人員對計算服務(wù)器集群進(jìn)行變更時,計算服務(wù)器集群發(fā)生的變動都可以自動、實(shí)時地反饋到動態(tài)路由表中,可自適應(yīng)地轉(zhuǎn)發(fā)業(yè)務(wù)請求給相應(yīng)的計算服務(wù)器,而且降低了對維護(hù)人員的要求,降低了維護(hù)成本。
在一個實(shí)施例中,動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器子集標(biāo)識和計算服務(wù)器地址的映射關(guān)系。參照圖5,步驟308具體包括如下步驟:
步驟502,根據(jù)動態(tài)路由表,確定業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識所對應(yīng)的計算服務(wù)器子集標(biāo)識。
具體地,動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器子集標(biāo)識和計算服務(wù)器地址三者的映射關(guān)系。比如201.1.0->module 10->xxx.xxx.xxx.xxx,表示業(yè)務(wù)算法標(biāo)識為201.1.0的業(yè)務(wù)算法,在計算服務(wù)器子集標(biāo)識為module 10的計算服務(wù)器子集中的計算服務(wù)器上啟用,且計算服務(wù)器子集標(biāo)識為module 10的計算服務(wù)器子集中的一個計算服務(wù)器的IP地址為xxx.xxx.xxx.xxx。這樣接入服務(wù)器就可以根據(jù)動態(tài)路由表所包括的映射關(guān)系,確定業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識所對應(yīng)的計算服務(wù)器子集標(biāo)識。
步驟504,在確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址中選擇計算服務(wù)器地址。
具體地,計算服務(wù)器子集中包括若干計算服務(wù)器,從中選擇一個計算服務(wù)器來處理業(yè)務(wù)請求。接入服務(wù)器可以從確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址中隨機(jī)或者按順序選擇一個計算服務(wù)器地址。
在一個實(shí)施例中,接入服務(wù)器可獲取確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址各自對應(yīng)的負(fù)載狀態(tài),從而根據(jù)負(fù)載狀態(tài)選擇計算服務(wù)器地址。
具體地,接入服務(wù)器可保存負(fù)載狀態(tài)表,從而根據(jù)該負(fù)載狀態(tài)表來選擇當(dāng) 前負(fù)載最低的計算服務(wù)器地址。接入服務(wù)器每轉(zhuǎn)發(fā)一個業(yè)務(wù)請求至計算服務(wù)器,則將負(fù)載狀態(tài)表中對應(yīng)的計算服務(wù)器地址所對應(yīng)的負(fù)載數(shù)值加1,若接收到該計算服務(wù)器反饋的業(yè)務(wù)數(shù)據(jù),則將負(fù)載狀態(tài)表中對應(yīng)的計算服務(wù)器地址所對應(yīng)的負(fù)載數(shù)值減1,這樣負(fù)載狀態(tài)表就可以實(shí)時反映計算服務(wù)器集群中各計算服務(wù)器的負(fù)載變化。
在另一實(shí)施例中,接入服務(wù)器也可以從管理服務(wù)器獲取確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址各自對應(yīng)的負(fù)載狀態(tài),從而根據(jù)該負(fù)載狀態(tài)表來選擇當(dāng)前負(fù)載最低的計算服務(wù)器地址。
步驟506,將業(yè)務(wù)請求轉(zhuǎn)發(fā)至選擇的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。
具體地,接入服務(wù)器可按照選擇的計算服務(wù)器地址的路由路徑,將業(yè)務(wù)請求轉(zhuǎn)發(fā)至選擇的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。
本實(shí)施例中,動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器子集標(biāo)識和計算服務(wù)器地址的映射關(guān)系,這樣計算服務(wù)器集群中的計算服務(wù)器被劃分為多個計算服務(wù)器子集,每個計算服務(wù)器子集上可以啟用相同的業(yè)務(wù)算法,這樣可以根據(jù)情況平衡負(fù)載,保證對業(yè)務(wù)請求的處理能夠高效地進(jìn)行。
在一個實(shí)施例中,步驟308包括:根據(jù)動態(tài)路由表,獲取與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器地址的負(fù)載狀態(tài),并根據(jù)負(fù)載狀態(tài)選擇計算服務(wù)器并轉(zhuǎn)發(fā)業(yè)務(wù)請求。
具體地,接入服務(wù)器可保存負(fù)載狀態(tài)表,從而根據(jù)該負(fù)載狀態(tài)表來選擇當(dāng)前負(fù)載最低的計算服務(wù)器地址,從而將業(yè)務(wù)請求轉(zhuǎn)發(fā)至該選擇的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。接入服務(wù)器每轉(zhuǎn)發(fā)一個業(yè)務(wù)請求至計算服務(wù)器,則將負(fù)載狀態(tài)表中對應(yīng)的計算服務(wù)器地址所對應(yīng)的負(fù)載數(shù)值加1,若接收到該計算服務(wù)器反饋的業(yè)務(wù)數(shù)據(jù),則將負(fù)載狀態(tài)表中對應(yīng)的計算服務(wù)器地址所對應(yīng)的負(fù)載數(shù)值減1。另外,接入服務(wù)器也可以從管理服務(wù)器獲取確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址各自對應(yīng)的負(fù)載狀態(tài),從而根據(jù)該負(fù)載狀態(tài)表來選擇當(dāng)前負(fù)載最低的計算服務(wù)器地址,從而將業(yè)務(wù)請求轉(zhuǎn)發(fā)至該選擇的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。
本實(shí)施例中,可以根據(jù)計算服務(wù)器集群中各計算服務(wù)器的負(fù)載狀態(tài)來轉(zhuǎn)發(fā) 業(yè)務(wù)請求,平衡各計算服務(wù)器的負(fù)載,保證業(yè)務(wù)請求能夠被高效地處理。
在一個實(shí)施例中,該業(yè)務(wù)請求分配方法還包括:管理服務(wù)器統(tǒng)計轉(zhuǎn)發(fā)的業(yè)務(wù)請求,根據(jù)統(tǒng)計結(jié)果動態(tài)控制計算服務(wù)器集群中的計算服務(wù)器上業(yè)務(wù)算法的啟用或者停用。
管理服務(wù)器對轉(zhuǎn)發(fā)的業(yè)務(wù)請求的統(tǒng)計結(jié)果,包括各業(yè)務(wù)算法各自對應(yīng)的業(yè)務(wù)請求的數(shù)量或頻率,還可以包括各業(yè)務(wù)算法各自對應(yīng)的業(yè)務(wù)請求數(shù)量或頻率相對于時間的分布。管理服務(wù)器可以對計算服務(wù)器集群中的計算服務(wù)器上的業(yè)務(wù)算法進(jìn)行動態(tài)管理,在某個或者某些計算服務(wù)器上啟用或者停用業(yè)務(wù)算法。
具體地,若統(tǒng)計的某類型的業(yè)務(wù)請求數(shù)量減少,則可以通過停用某個或者某些計算服務(wù)器上的業(yè)務(wù)算法,以減少加載該業(yè)務(wù)算法的計算服務(wù)器的數(shù)量。相應(yīng)地,若統(tǒng)計的某類型的業(yè)務(wù)請求數(shù)量增加,則可以通過啟用某個或者某些計算服務(wù)器上的業(yè)務(wù)算法,以增加加載該業(yè)務(wù)算法的計算服務(wù)器的數(shù)量。管理服務(wù)器還可以各業(yè)務(wù)算法各自對應(yīng)的業(yè)務(wù)請求數(shù)量或頻率相對于時間的分布,在不同的時間段內(nèi)采用不同的啟用或者停用業(yè)務(wù)算法的策略。
本實(shí)施例中,根據(jù)業(yè)務(wù)請求的統(tǒng)計結(jié)果來動態(tài)控制業(yè)務(wù)算法的啟用或者停用,可以動態(tài)調(diào)整計算服務(wù)器集群中用來處理各種業(yè)務(wù)請求的計算服務(wù)器的數(shù)量,保證業(yè)務(wù)請求能夠被更加高效地處理。
在一個實(shí)施例中,該業(yè)務(wù)請求分配方法還包括:管理服務(wù)器統(tǒng)計轉(zhuǎn)發(fā)的業(yè)務(wù)請求,根據(jù)統(tǒng)計結(jié)果動態(tài)調(diào)整計算服務(wù)器集群中計算服務(wù)器子集的劃分。
管理服務(wù)器對轉(zhuǎn)發(fā)的業(yè)務(wù)請求的統(tǒng)計結(jié)果,包括各業(yè)務(wù)算法各自對應(yīng)的業(yè)務(wù)請求的數(shù)量或頻率,還可以包括各業(yè)務(wù)算法各自對應(yīng)的業(yè)務(wù)請求數(shù)量或頻率相對于時間的分布。管理服務(wù)器可以在動態(tài)控制計算服務(wù)器集群中的計算服務(wù)器上業(yè)務(wù)算法的啟用或者停用的同時,對計算服務(wù)器集群中計算服務(wù)器子集的劃分進(jìn)行動態(tài)調(diào)整,保證業(yè)務(wù)請求能夠被更加高效地處理。
在一個實(shí)施例中,該業(yè)務(wù)請求分配方法還包括:管理服務(wù)器在接收到上報的集群狀態(tài)后,實(shí)時通知配置服務(wù)器;管理服務(wù)器接收配置服務(wù)器根據(jù)集群狀態(tài)生成并返回的集群快照。
具體地,參照圖2和圖6,本實(shí)施例中通過配置服務(wù)器來生成集群快照,具 體管理服務(wù)器在在接收到上報的集群狀態(tài)后,實(shí)時通知配置服務(wù)器,使得配置服務(wù)器根據(jù)上報的集群狀態(tài)來生成集群快照并向管理服務(wù)器返回生成的集群快照,管理服務(wù)器接收該集群快照。然后接入服務(wù)器就可以實(shí)時從管理服務(wù)器獲取集群快照從而生成動態(tài)路由表。
本實(shí)施例中,通過增設(shè)配置服務(wù)器來生成集群快照,將管理服務(wù)器的功能分化,減輕管理服務(wù)器的壓力。
在一個實(shí)施例中,該業(yè)務(wù)請求分配方法還包括:配置服務(wù)器或管理服務(wù)器接收維護(hù)指令,根據(jù)維護(hù)指令調(diào)整計算服務(wù)器集群。其中維護(hù)指令包括業(yè)務(wù)算法調(diào)整指令和計算服務(wù)器子集調(diào)整指令。
在一個實(shí)施例中,該業(yè)務(wù)請求分配方法還包括:配置服務(wù)器或管理服務(wù)器接收業(yè)務(wù)算法調(diào)整指令,根據(jù)業(yè)務(wù)算法調(diào)整指令控制計算服務(wù)器集群中的計算服務(wù)器上業(yè)務(wù)算法的啟用以及停用。
參照圖6,本實(shí)施例中,維護(hù)人員可以通過操作配置服務(wù)器或者管理服務(wù)器,來觸發(fā)業(yè)務(wù)算法調(diào)整指令,從而使得配置服務(wù)器或者管理服務(wù)器根據(jù)該業(yè)務(wù)算法調(diào)整指令來控制計算服務(wù)器集群中的計算服務(wù)器上業(yè)務(wù)算法的啟用以及停用。
這樣維護(hù)人員通過操作配置服務(wù)器或者管理服務(wù)器,可以隨時根據(jù)需要來維護(hù)計算服務(wù)器集群中各計算服務(wù)器上的業(yè)務(wù)算法,不需要再操作接入服務(wù)器或者計算服務(wù)器集群,整個業(yè)務(wù)請求分配系統(tǒng)就可以自適應(yīng)地更新動態(tài)路由表,并且根據(jù)動態(tài)路由表正常分配業(yè)務(wù)請求,極大地提高了操作便利性。
在一個實(shí)施例中,該業(yè)務(wù)請求分配方法還包括:配置服務(wù)器或管理服務(wù)器接收計算服務(wù)器子集調(diào)整指令,根據(jù)計算服務(wù)器子集調(diào)整指令調(diào)整計算服務(wù)器集群中計算服務(wù)器子集的劃分。
本實(shí)施例中,維護(hù)人員可以通過操作配置服務(wù)器或者管理服務(wù)器,來觸發(fā)計算服務(wù)器子集調(diào)整指令,從而使得配置服務(wù)器或者管理服務(wù)器根據(jù)該計算服務(wù)器子集調(diào)整指令來調(diào)整計算服務(wù)器集群中計算服務(wù)器子集的劃分。
這樣維護(hù)人員通過操作配置服務(wù)器或者管理服務(wù)器,可以隨時根據(jù)需要來維護(hù)計算服務(wù)器集群中各計算服務(wù)器子集的劃分,不需要再操作接入服務(wù)器或 者計算服務(wù)器集群,整個業(yè)務(wù)請求分配系統(tǒng)就可以自適應(yīng)地更新動態(tài)路由表,并且根據(jù)動態(tài)路由表正常分配業(yè)務(wù)請求,極大地提高了操作便利性。
在一個實(shí)施例中,該業(yè)務(wù)請求分配方法還包括:接收被轉(zhuǎn)發(fā)業(yè)務(wù)請求的計算服務(wù)器在采用相應(yīng)的業(yè)務(wù)算法對業(yè)務(wù)請求處理后所反饋的業(yè)務(wù)數(shù)據(jù),并將業(yè)務(wù)數(shù)據(jù)反饋給用戶端。
在一個實(shí)施例中,業(yè)務(wù)請求包括來自用戶端的廣告請求;業(yè)務(wù)數(shù)據(jù)包括廣告數(shù)據(jù);該業(yè)務(wù)請求分配方法還包括:接收被轉(zhuǎn)發(fā)廣告請求的計算服務(wù)器在采用相應(yīng)的業(yè)務(wù)算法對廣告請求處理后所反饋的廣告數(shù)據(jù),并將廣告數(shù)據(jù)反饋給用戶端。
本實(shí)施例中,被轉(zhuǎn)發(fā)廣告請求的計算服務(wù)器采用該業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法進(jìn)行廣告計算,比如廣告評估、廣告篩選以及廣告排序,然后將計算獲得的廣告數(shù)據(jù)反饋給接入服務(wù)器。接入服務(wù)器接收該計算服務(wù)器發(fā)來的廣告數(shù)據(jù),并將廣告數(shù)據(jù)反饋給用戶端。
其中廣告請求可以包括用戶屬性和/或廣告展示位信息。其中用戶屬性包括用戶標(biāo)識、用戶年齡段、用戶喜好以及用戶廣告瀏覽記錄等。廣告展示位信息包括網(wǎng)頁地址、展示位尺寸以及展示位所在頁面等。
用戶端可以是臺式計算機(jī)或者移動終端,移動終端包括手機(jī)、平板電腦和智能手表。用戶端可以在進(jìn)入預(yù)設(shè)的頁面時觸發(fā)廣告請求,并在接收到接入服務(wù)器所反饋的廣告數(shù)據(jù)后,顯示和/或播放廣告數(shù)據(jù)。
本實(shí)施例中,將業(yè)務(wù)請求分配方法應(yīng)用到廣告領(lǐng)域,利用業(yè)務(wù)請求分配系統(tǒng)來高效地處理廣告請求,對廣告請求做出即時、高效地響應(yīng),提高了廣告推廣的效率。
參照圖7,下面用一個具體應(yīng)用場景來說明上述業(yè)務(wù)請求分配方法的原理,本應(yīng)用場景中業(yè)務(wù)請求為廣告請求。具體包括如下步驟:
步驟701,計算服務(wù)器集群向管理服務(wù)器實(shí)時上報集群狀態(tài)。
步驟702,管理服務(wù)器通知配置服務(wù)器上報的集群狀態(tài)。
步驟703,配置服務(wù)器根據(jù)集群狀態(tài)生成集群快照并反饋至管理服務(wù)器。
步驟704,接入服務(wù)器從管理服務(wù)器實(shí)時下載集群快照。
步驟705,接入服務(wù)器根據(jù)集群快照生成或更新動態(tài)路由表。
步驟706,用戶端向接入服務(wù)器發(fā)送廣告請求。
步驟707,接入服務(wù)器根據(jù)廣告請求在動態(tài)路由表中查詢廣告請求的算法標(biāo)識所對應(yīng)的服務(wù)器地址。
步驟708,接入服務(wù)器將廣告請求轉(zhuǎn)發(fā)至計算服務(wù)器集群中與查詢到的服務(wù)器地址對應(yīng)的計算服務(wù)器。
步驟709,被轉(zhuǎn)發(fā)廣告請求的計算服務(wù)器根據(jù)廣告請求進(jìn)行廣告計算,獲得廣告數(shù)據(jù)。
步驟710,被轉(zhuǎn)發(fā)廣告請求的計算服務(wù)器將廣告數(shù)據(jù)反饋給接入服務(wù)器。
步驟711,接入服務(wù)器將廣告數(shù)據(jù)反饋給用戶端。
參照圖1,在一個實(shí)施例中,一種業(yè)務(wù)請求分配系統(tǒng)100,包括接入服務(wù)器102、計算服務(wù)器集群104和管理服務(wù)器106。
計算服務(wù)器集群104用于實(shí)時向管理服務(wù)器106上報集群狀態(tài)。
具體地,參照圖4,計算服務(wù)器集群104中的所有計算服務(wù)器會實(shí)時向管理服務(wù)器106上報集群狀態(tài)。計算服務(wù)器集群104中的所有計算服務(wù)器,可以在各自的狀態(tài)發(fā)生變化時,實(shí)時向管理服務(wù)器106上報集群狀態(tài)。
集群狀態(tài)是指能夠反映計算服務(wù)器集群104的狀態(tài)的信息。在一個實(shí)施例中,集群狀態(tài)包括計算服務(wù)器狀態(tài)和業(yè)務(wù)算法狀態(tài)。
計算服務(wù)器狀態(tài)可包括計算服務(wù)器是否正常工作、計算服務(wù)器的負(fù)載狀態(tài)以及計算服務(wù)器所屬的計算服務(wù)器子集。負(fù)載狀態(tài)可以用相應(yīng)計算服務(wù)器正在處理的業(yè)務(wù)請求數(shù)量來表示,也可以用處理器占用率和/或內(nèi)存占用率來表示。通過實(shí)時的計算服務(wù)器狀態(tài),可以實(shí)時檢測出計算服務(wù)器集群104中各計算服務(wù)器各自發(fā)生的變化。
進(jìn)一步地,業(yè)務(wù)算法狀態(tài)可包括業(yè)務(wù)算法啟用、業(yè)務(wù)算法停用以及業(yè)務(wù)算法版本更新等。其中業(yè)務(wù)包括用戶注冊業(yè)務(wù)、資源請求業(yè)務(wù)以及云計算業(yè)務(wù)等。資源請求業(yè)務(wù)的資源包括廣告、媒體文件以及網(wǎng)頁等。業(yè)務(wù)算法可以是任意的用來處理業(yè)務(wù)請求的計算方法,當(dāng)業(yè)務(wù)請求為廣告請求時,業(yè)務(wù)算法包括廣告 排序算法、廣告打分算法以及廣告評估算法等。
管理服務(wù)器106用于實(shí)時根據(jù)集群狀態(tài)生成集群快照。
快照是關(guān)于指定數(shù)據(jù)集合的一個完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個時間點(diǎn)的映像。快照可以是其所表示的數(shù)據(jù)的一個副本,也可以是數(shù)據(jù)的一個復(fù)制品。在一個實(shí)施例中,管理服務(wù)器106在生成集群快照時,可以在管理服務(wù)器106第一次寫集群狀態(tài)時復(fù)制集群狀態(tài)的內(nèi)容以生成集群快照。集群快照可以為XML格式。
在一個實(shí)施例中,管理服務(wù)器106生成的集群快照包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器地址。在一個實(shí)施例中,集群快照包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器子集標(biāo)識和計算服務(wù)器地址。其中業(yè)務(wù)算法標(biāo)識用于唯一標(biāo)識出一種業(yè)務(wù)算法,計算服務(wù)器子集是包含于計算服務(wù)器集群104的若干計算服務(wù)器的集合,計算服務(wù)器子集標(biāo)識則用來唯一標(biāo)識出該計算服務(wù)器子集。劃分計算服務(wù)器子集便于計算服務(wù)器的管理以及負(fù)載均衡。計算服務(wù)器地址則可以用來定位計算服務(wù)器的位置,方便通信。
接入服務(wù)器102用于實(shí)時從管理服務(wù)器106獲取集群快照,并根據(jù)獲取的集群快照更新動態(tài)路由表;動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的映射關(guān)系。
接入服務(wù)器102實(shí)時從管理服務(wù)器106獲取集群快照,可以在接收到管理服務(wù)器106發(fā)出的生成集群快照的通知后,立即從管理服務(wù)器106獲取相應(yīng)的集群快照。接入服務(wù)器102也可以每隔預(yù)設(shè)時間間隔從管理服務(wù)器106請求獲取集群快照,該預(yù)設(shè)時間間隔非常短時可以認(rèn)為是實(shí)時的。
路由表主要存儲有指向特定網(wǎng)絡(luò)地址的路徑,動態(tài)路由表表示該路由表是根據(jù)實(shí)時獲取的集群快照而動態(tài)變化的。動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的映射關(guān)系,比如若業(yè)務(wù)算法標(biāo)識為業(yè)務(wù)算法編號,計算服務(wù)器地址為計算服務(wù)器IP地址和端口號,則動態(tài)路由表可表示為業(yè)務(wù)算法編號與計算服務(wù)器IP地址及端口號的映射關(guān)系。接入服務(wù)器102具有路由模塊,用于實(shí)現(xiàn)路由功能。
接入服務(wù)器102還用于接收業(yè)務(wù)請求,獲取業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo) 識,并根據(jù)動態(tài)路由表將業(yè)務(wù)請求轉(zhuǎn)發(fā)至計算服務(wù)器集群104中與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器。
具體地,接入服務(wù)器102可以事先存儲業(yè)務(wù)請求類型和業(yè)務(wù)算法標(biāo)識的映射關(guān)系,從而接入服務(wù)器102在接收到業(yè)務(wù)請求后,根據(jù)該映射關(guān)系獲取該業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識。接入服務(wù)器102也可以直接從業(yè)務(wù)請求中提取業(yè)務(wù)請求所攜帶的業(yè)務(wù)算法標(biāo)識。
接入服務(wù)器102具有路由功能,可根據(jù)動態(tài)路由表所包括的業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的映射關(guān)系,對業(yè)務(wù)請求進(jìn)行路由,將業(yè)務(wù)請求轉(zhuǎn)發(fā)至計算服務(wù)器集群104中與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器。接入服務(wù)器102可從動態(tài)路由表中查詢獲取的業(yè)務(wù)算法標(biāo)識所對應(yīng)的計算服務(wù)器地址,從而按照查詢的計算服務(wù)器地址的路由路徑,將業(yè)務(wù)請求轉(zhuǎn)發(fā)至查詢的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。
上述業(yè)務(wù)請求分配系統(tǒng)100,計算服務(wù)器集群104主動地實(shí)時向管理服務(wù)器106上報集群狀態(tài),這樣管理服務(wù)器106就可以實(shí)時根據(jù)集群狀態(tài)生成集群快照,接入服務(wù)器102實(shí)時從管理服務(wù)器106獲取集群快照,并根據(jù)獲取的集群快照更新動態(tài)路由表。從而接入服務(wù)器102在接收到業(yè)務(wù)請求后,就可以根據(jù)更新的動態(tài)路由表分配業(yè)務(wù)請求。這樣當(dāng)維護(hù)人員對計算服務(wù)器集群104進(jìn)行變更時,計算服務(wù)器集群104發(fā)生的變動都可以自動、實(shí)時地反饋到動態(tài)路由表中,而且降低了對維護(hù)人員的要求,降低了維護(hù)成本。
在一個實(shí)施例中,動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器子集標(biāo)識和計算服務(wù)器地址的映射關(guān)系。接入服務(wù)器102還用于根據(jù)動態(tài)路由表,確定業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識所對應(yīng)的計算服務(wù)器子集標(biāo)識;在確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址中選擇計算服務(wù)器地址;將業(yè)務(wù)請求轉(zhuǎn)發(fā)至選擇的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。
具體地,動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器子集標(biāo)識和計算服務(wù)器地址三者的映射關(guān)系。比如201.1.0->module 10->xxx.xxx.xxx.xxx,表示業(yè)務(wù)算法標(biāo)識為201.1.0的業(yè)務(wù)算法,在計算服務(wù)器子集標(biāo)識為module 10的計算服務(wù)器子集中的計算服務(wù)器上啟用,且計算服務(wù)器子集標(biāo)識為module 10的計算服 務(wù)器子集中的一個計算服務(wù)器的IP地址為xxx.xxx.xxx.xxx。這樣接入服務(wù)器102就可以根據(jù)動態(tài)路由表所包括的映射關(guān)系,確定業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識所對應(yīng)的計算服務(wù)器子集標(biāo)識。
計算服務(wù)器子集中包括若干計算服務(wù)器,從中選擇一個計算服務(wù)器來處理業(yè)務(wù)請求。接入服務(wù)器102可以從確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址中隨機(jī)或者按順序選擇一個計算服務(wù)器地址。接入服務(wù)器102可按照選擇的計算服務(wù)器地址的路由路徑,將業(yè)務(wù)請求轉(zhuǎn)發(fā)至選擇的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。
本實(shí)施例中,動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器子集標(biāo)識和計算服務(wù)器地址的映射關(guān)系,這樣計算服務(wù)器集群104中的計算服務(wù)器被劃分為多個計算服務(wù)器子集,每個計算服務(wù)器子集上可以啟用相同的業(yè)務(wù)算法,這樣可以根據(jù)情況平衡負(fù)載,保證對業(yè)務(wù)請求的處理能夠高效地進(jìn)行。
在一個實(shí)施例中,接入服務(wù)器102可獲取確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址各自對應(yīng)的負(fù)載狀態(tài),從而根據(jù)負(fù)載狀態(tài)選擇計算服務(wù)器地址。
具體地,接入服務(wù)器102可保存負(fù)載狀態(tài)表,從而根據(jù)該負(fù)載狀態(tài)表來選擇當(dāng)前負(fù)載最低的計算服務(wù)器地址。接入服務(wù)器102每轉(zhuǎn)發(fā)一個業(yè)務(wù)請求至計算服務(wù)器,則將負(fù)載狀態(tài)表中對應(yīng)的計算服務(wù)器地址所對應(yīng)的負(fù)載數(shù)值加1,若接收到該計算服務(wù)器反饋的業(yè)務(wù)數(shù)據(jù),則將負(fù)載狀態(tài)表中對應(yīng)的計算服務(wù)器地址所對應(yīng)的負(fù)載數(shù)值減1,這樣負(fù)載狀態(tài)表就可以實(shí)時反映計算服務(wù)器集群104中各計算服務(wù)器的負(fù)載變化。
在另一實(shí)施例中,接入服務(wù)器102也可以從管理服務(wù)器106獲取確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址各自對應(yīng)的負(fù)載狀態(tài),從而根據(jù)該負(fù)載狀態(tài)表來選擇當(dāng)前負(fù)載最低的計算服務(wù)器地址。
在一個實(shí)施例中,接入服務(wù)器102還用于根據(jù)動態(tài)路由表,獲取與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器地址的負(fù)載狀態(tài),并根據(jù)負(fù)載狀態(tài)選擇計算服務(wù)器并轉(zhuǎn)發(fā)業(yè)務(wù)請求。
具體地,接入服務(wù)器102可保存負(fù)載狀態(tài)表,從而根據(jù)該負(fù)載狀態(tài)表來選 擇當(dāng)前負(fù)載最低的計算服務(wù)器地址,從而將業(yè)務(wù)請求轉(zhuǎn)發(fā)至該選擇的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。接入服務(wù)器102每轉(zhuǎn)發(fā)一個業(yè)務(wù)請求至計算服務(wù)器,則將負(fù)載狀態(tài)表中對應(yīng)的計算服務(wù)器地址所對應(yīng)的負(fù)載數(shù)值加1,若接收到該計算服務(wù)器反饋的業(yè)務(wù)數(shù)據(jù),則將負(fù)載狀態(tài)表中對應(yīng)的計算服務(wù)器地址所對應(yīng)的負(fù)載數(shù)值減1。另外,接入服務(wù)器102也可以從管理服務(wù)器106獲取確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址各自對應(yīng)的負(fù)載狀態(tài),從而根據(jù)該負(fù)載狀態(tài)表來選擇當(dāng)前負(fù)載最低的計算服務(wù)器地址,從而將業(yè)務(wù)請求轉(zhuǎn)發(fā)至該選擇的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。
本實(shí)施例中,可以根據(jù)計算服務(wù)器集群104中各計算服務(wù)器的負(fù)載狀態(tài)來轉(zhuǎn)發(fā)業(yè)務(wù)請求,平衡各計算服務(wù)器的負(fù)載,保證業(yè)務(wù)請求能夠被高效地處理。
在一個實(shí)施例中,管理服務(wù)器106還用于統(tǒng)計接入服務(wù)器102轉(zhuǎn)發(fā)的業(yè)務(wù)請求,根據(jù)統(tǒng)計結(jié)果動態(tài)控制計算服務(wù)器集群104中的計算服務(wù)器上業(yè)務(wù)算法的啟用或者停用;和/或,根據(jù)統(tǒng)計結(jié)果動態(tài)調(diào)整計算服務(wù)器集群104中計算服務(wù)器子集的劃分。
管理服務(wù)器106對轉(zhuǎn)發(fā)的業(yè)務(wù)請求的統(tǒng)計結(jié)果,包括各業(yè)務(wù)算法各自對應(yīng)的業(yè)務(wù)請求的數(shù)量或頻率,還可以包括各業(yè)務(wù)算法各自對應(yīng)的業(yè)務(wù)請求數(shù)量或頻率相對于時間的分布。管理服務(wù)器106可以對計算服務(wù)器集群104中的計算服務(wù)器上的業(yè)務(wù)算法進(jìn)行動態(tài)管理,在某個或者某些計算服務(wù)器上啟用或者停用業(yè)務(wù)算法。
具體地,若統(tǒng)計的某類型的業(yè)務(wù)請求數(shù)量減少,則可以通過停用某個或者某些計算服務(wù)器上的業(yè)務(wù)算法,以減少加載該業(yè)務(wù)算法的計算服務(wù)器的數(shù)量。相應(yīng)地,若統(tǒng)計的某類型的業(yè)務(wù)請求數(shù)量增加,則可以通過啟用某個或者某些計算服務(wù)器上的業(yè)務(wù)算法,以增加加載該業(yè)務(wù)算法的計算服務(wù)器的數(shù)量。管理服務(wù)器106還可以各業(yè)務(wù)算法各自對應(yīng)的業(yè)務(wù)請求數(shù)量或頻率相對于時間的分布,在不同的時間段內(nèi)采用不同的啟用或者停用業(yè)務(wù)算法的策略。
管理服務(wù)器106可以在動態(tài)控制計算服務(wù)器集群104中的計算服務(wù)器上業(yè)務(wù)算法的啟用或者停用的同時,對計算服務(wù)器集群104中計算服務(wù)器子集的劃分進(jìn)行動態(tài)調(diào)整,保證業(yè)務(wù)請求能夠被更加高效地處理。
本實(shí)施例中,根據(jù)業(yè)務(wù)請求的統(tǒng)計結(jié)果來動態(tài)控制業(yè)務(wù)算法的啟用或者停用,可以動態(tài)調(diào)整計算服務(wù)器集群104中用來處理各種業(yè)務(wù)請求的計算服務(wù)器的數(shù)量,并對計算服務(wù)器集群104中計算服務(wù)器子集的劃分進(jìn)行動態(tài)調(diào)整,保證業(yè)務(wù)請求能夠被更加高效地處理。
如圖2所示,一種業(yè)務(wù)請求分配系統(tǒng)200,包括接入服務(wù)器102、計算服務(wù)器集群104、管理服務(wù)器106和配置服務(wù)器108。
管理服務(wù)器106用于在接收到上報的集群狀態(tài)后,實(shí)時通知配置服務(wù)器108。配置服務(wù)器108用于根據(jù)集群狀態(tài)生成集群快照并返回給管理服務(wù)器106。
具體地,參照圖2和圖6,本實(shí)施例中通過配置服務(wù)器108來生成集群快照,具體管理服務(wù)器106在在接收到上報的集群狀態(tài)后,實(shí)時通知配置服務(wù)器108,使得配置服務(wù)器108根據(jù)上報的集群狀態(tài)來生成集群快照并向管理服務(wù)器106返回生成的集群快照,管理服務(wù)器106接收該集群快照。然后接入服務(wù)器102就可以實(shí)時從管理服務(wù)器106獲取集群快照從而生成動態(tài)路由表。
本實(shí)施例中,通過增設(shè)配置服務(wù)器108來生成集群快照,將管理服務(wù)器106的功能分化,減輕管理服務(wù)器106的壓力。
在一個實(shí)施例中,配置服務(wù)器108或管理服務(wù)器106用于接收維護(hù)指令,根據(jù)維護(hù)指令調(diào)整計算服務(wù)器集群104。其中維護(hù)指令包括業(yè)務(wù)算法調(diào)整指令和計算服務(wù)器子集調(diào)整指令。
在一個實(shí)施例中,配置服務(wù)器108用于接收業(yè)務(wù)算法調(diào)整指令,根據(jù)業(yè)務(wù)算法調(diào)整指令控制計算服務(wù)器集群104中的計算服務(wù)器上業(yè)務(wù)算法的啟用以及停用;接收計算服務(wù)器子集調(diào)整指令,根據(jù)計算服務(wù)器子集調(diào)整指令調(diào)整計算服務(wù)器集群104中計算服務(wù)器子集的劃分;
在一個實(shí)施例中,管理服務(wù)器106用于接收業(yè)務(wù)算法調(diào)整指令,根據(jù)業(yè)務(wù)算法調(diào)整指令控制計算服務(wù)器集群104中的計算服務(wù)器上業(yè)務(wù)算法的啟用以及停用;接收計算服務(wù)器子集調(diào)整指令,根據(jù)計算服務(wù)器子集調(diào)整指令調(diào)整計算服務(wù)器集群104中計算服務(wù)器子集的劃分。
本實(shí)施例中,維護(hù)人員可以通過操作配置服務(wù)器108或者管理服務(wù)器106,來觸發(fā)業(yè)務(wù)算法調(diào)整指令,從而使得配置服務(wù)器108或者管理服務(wù)器106根據(jù) 該業(yè)務(wù)算法調(diào)整指令來控制計算服務(wù)器集群104中的計算服務(wù)器上業(yè)務(wù)算法的啟用以及停用。
這樣維護(hù)人員通過操作配置服務(wù)器108或者管理服務(wù)器106,可以隨時根據(jù)需要來維護(hù)計算服務(wù)器集群104中各計算服務(wù)器上的業(yè)務(wù)算法,不需要再操作接入服務(wù)器102或者計算服務(wù)器集群104,整個業(yè)務(wù)請求分配系統(tǒng)就可以自適應(yīng)地更新動態(tài)路由表,并且根據(jù)動態(tài)路由表正常分配業(yè)務(wù)請求,極大地提高了操作便利性。
維護(hù)人員可以通過操作配置服務(wù)器108或者管理服務(wù)器106,來觸發(fā)計算服務(wù)器子集調(diào)整指令,從而使得配置服務(wù)器108或者管理服務(wù)器106根據(jù)該計算服務(wù)器子集調(diào)整指令來調(diào)整計算服務(wù)器集群104中計算服務(wù)器子集的劃分。
這樣維護(hù)人員通過操作配置服務(wù)器108或者管理服務(wù)器106,可以隨時根據(jù)需要來維護(hù)計算服務(wù)器集群104中各計算服務(wù)器子集的劃分,不需要再操作接入服務(wù)器102或者計算服務(wù)器集群104,整個業(yè)務(wù)請求分配系統(tǒng)就可以自適應(yīng)地更新動態(tài)路由表,并且根據(jù)動態(tài)路由表正常分配業(yè)務(wù)請求,極大地提高了操作便利性。
在一個實(shí)施例中,接入服務(wù)器102還用于接收被轉(zhuǎn)發(fā)業(yè)務(wù)請求的計算服務(wù)器在采用相應(yīng)的業(yè)務(wù)算法對業(yè)務(wù)請求處理后所反饋的業(yè)務(wù)數(shù)據(jù),并將業(yè)務(wù)數(shù)據(jù)反饋給用戶端。
在一個實(shí)施例中,業(yè)務(wù)請求包括來自用戶端的廣告請求;業(yè)務(wù)數(shù)據(jù)包括廣告數(shù)據(jù);接入服務(wù)器102還用于接收被轉(zhuǎn)發(fā)廣告請求的計算服務(wù)器在采用相應(yīng)的業(yè)務(wù)算法對廣告請求處理后所反饋的廣告數(shù)據(jù),并將廣告數(shù)據(jù)反饋給用戶端。
本實(shí)施例中,被轉(zhuǎn)發(fā)廣告請求的計算服務(wù)器采用該業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法進(jìn)行廣告計算,比如廣告評估、廣告篩選以及廣告排序,然后將計算獲得的廣告數(shù)據(jù)反饋給接入服務(wù)器102。接入服務(wù)器102接收該計算服務(wù)器發(fā)來的廣告數(shù)據(jù),并將廣告數(shù)據(jù)反饋給用戶端。
其中廣告請求可以包括用戶屬性和/或廣告展示位信息。其中用戶屬性包括用戶標(biāo)識、用戶年齡段、用戶喜好以及用戶廣告瀏覽記錄等。廣告展示位信息包括網(wǎng)頁地址、展示位尺寸以及展示位所在頁面等。
用戶端可以是臺式計算機(jī)或者移動終端,移動終端包括手機(jī)、平板電腦和智能手表。用戶端可以在進(jìn)入預(yù)設(shè)的頁面時觸發(fā)廣告請求,并在接收到接入服務(wù)器102所反饋的廣告數(shù)據(jù)后,顯示和/或播放廣告數(shù)據(jù)。
本實(shí)施例中,將業(yè)務(wù)請求分配方法應(yīng)用到廣告領(lǐng)域,利用業(yè)務(wù)請求分配系統(tǒng)來高效地處理廣告請求,對廣告請求做出即時、高效地響應(yīng),提高了廣告推廣的效率。
如圖8所示,在一個實(shí)施例中,提供了一種服務(wù)器800,可作為接入服務(wù)器102,用于實(shí)現(xiàn)上述各個實(shí)施例的業(yè)務(wù)請求分配方法。服務(wù)器800包括通過系統(tǒng)總線連接的處理器、內(nèi)存儲器和非易失性存儲介質(zhì)。其中處理器具有計算功能和控制整個服務(wù)器800工作的功能,該處理器被配置為執(zhí)行一種業(yè)務(wù)請求分配方法。非易失性存儲介質(zhì)包括磁存儲介質(zhì)、光存儲介質(zhì)和閃存式存儲介質(zhì)。非易失性存儲介質(zhì)存儲有操作系統(tǒng)和一種業(yè)務(wù)請求分配裝置,該業(yè)務(wù)請求分配裝置用于實(shí)現(xiàn)一種業(yè)務(wù)請求分配方法。內(nèi)存儲器用來為操作系統(tǒng)和業(yè)務(wù)請求分配裝置提供高速緩存。
如圖9所示,在一個實(shí)施例中,提供了一種業(yè)務(wù)請求分配裝置900,具有實(shí)現(xiàn)上述各個實(shí)施例的業(yè)務(wù)請求分配方法的功能模塊。該業(yè)務(wù)請求分配裝置900包括:集群快照獲取模塊902、動態(tài)路由表管理模塊904、業(yè)務(wù)請求處理模塊906和轉(zhuǎn)發(fā)模塊908。
集群快照獲取模塊902,用于在管理服務(wù)器接收計算服務(wù)器集群實(shí)時上報的集群狀態(tài)并實(shí)時根據(jù)集群狀態(tài)生成集群快照后,實(shí)時從管理服務(wù)器獲取集群快照。
動態(tài)路由表管理模塊904,用于根據(jù)獲取的集群快照更新動態(tài)路由表;動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識和計算服務(wù)器地址的映射關(guān)系。
業(yè)務(wù)請求處理模塊906,用于接收業(yè)務(wù)請求,獲取業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識。
轉(zhuǎn)發(fā)模塊908,用于根據(jù)動態(tài)路由表將業(yè)務(wù)請求轉(zhuǎn)發(fā)至計算服務(wù)器集群中與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器。
在一個實(shí)施例中,動態(tài)路由表包括業(yè)務(wù)算法標(biāo)識、計算服務(wù)器子集標(biāo)識和計算服務(wù)器地址的映射關(guān)系;
轉(zhuǎn)發(fā)模塊908還用于根據(jù)動態(tài)路由表,確定業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)算法標(biāo)識所對應(yīng)的計算服務(wù)器子集標(biāo)識;在確定的計算服務(wù)器子集標(biāo)識所對應(yīng)的多個計算服務(wù)器地址中選擇計算服務(wù)器地址;將業(yè)務(wù)請求轉(zhuǎn)發(fā)至選擇的計算服務(wù)器地址所對應(yīng)的計算服務(wù)器。
在一個實(shí)施例中,轉(zhuǎn)發(fā)模塊908還用于根據(jù)動態(tài)路由表,獲取與獲取的業(yè)務(wù)算法標(biāo)識對應(yīng)的計算服務(wù)器地址的負(fù)載狀態(tài),并根據(jù)負(fù)載狀態(tài)選擇計算服務(wù)器并轉(zhuǎn)發(fā)業(yè)務(wù)請求。
如圖10所示,在一個實(shí)施例中,業(yè)務(wù)請求包括來自用戶端的廣告請求;業(yè)務(wù)請求分配裝置900還包括:廣告數(shù)據(jù)處理模塊910。
廣告數(shù)據(jù)處理模塊910,用于接收被轉(zhuǎn)發(fā)廣告請求的計算服務(wù)器在采用相應(yīng)的業(yè)務(wù)算法對廣告請求處理后所反饋的廣告數(shù)據(jù),并將廣告數(shù)據(jù)反饋給用戶端。
上述業(yè)務(wù)請求分配裝置900,計算服務(wù)器集群主動地實(shí)時向管理服務(wù)器上報集群狀態(tài),這樣管理服務(wù)器就可以實(shí)時根據(jù)集群狀態(tài)生成集群快照,業(yè)務(wù)請求分配裝置900實(shí)時從管理服務(wù)器獲取集群快照,并根據(jù)獲取的集群快照更新動態(tài)路由表。從而業(yè)務(wù)請求分配裝置900在接收到業(yè)務(wù)請求后,就可以根據(jù)更新的動態(tài)路由表分配業(yè)務(wù)請求。這樣當(dāng)維護(hù)人員對計算服務(wù)器集群進(jìn)行變更時,計算服務(wù)器集群發(fā)生的變動都可以自動、實(shí)時地反饋到動態(tài)路由表中,可自適應(yīng)地轉(zhuǎn)發(fā)業(yè)務(wù)請求給相應(yīng)的計算服務(wù)器,而且降低了對維護(hù)人員的要求,降低了維護(hù)成本。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)等非易失性存儲介質(zhì),或隨機(jī)存儲記憶體(Random Access Memory,RAM)等。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實(shí)施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。