業務請求分配系統、方法和裝置與流程
2023-05-01 00:52:41 1

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