一種服務(wù)器連接方法及服務(wù)器系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種服務(wù)器連接方法,用于把WEB服務(wù)器連接到后端服務(wù)器,該方法包括:Web服務(wù)器檢查本地是否緩存有后端服務(wù)器集群列表;若沒有緩存所述后端服務(wù)器集群列表,則所述Web服務(wù)器通過配置服務(wù)器獲取所述后端服務(wù)器集群列表并進行本地緩存;若緩存有所述后端服務(wù)器集群列表,則所述Web服務(wù)器獲取緩存的后端服務(wù)器集群列表并從所述緩存的后端服務(wù)器集群列表中選擇指定后端服務(wù)器;所述Web服務(wù)器直接連接所述指定后端服務(wù)器。本發(fā)明基于配置服務(wù)器的連接方法省略了LVS的連接處理過程,由此減少了在處理請求過程中的網(wǎng)絡(luò)通信時間,解決了現(xiàn)有技術(shù)中LVS斷掉后Web服務(wù)器進行長時間等待的問題。
【專利說明】一種服務(wù)器連接方法及服務(wù)器系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種服務(wù)器連接方法及服務(wù)器系統(tǒng),具體涉及一種基于zookeeper的 服務(wù)器連接方法及服務(wù)器系統(tǒng)。
【背景技術(shù)】
[0002]目前,在企業(yè)的一些內(nèi)部系統(tǒng)中,Web服務(wù)器到后臺存儲服務(wù)器的訪問通常需要經(jīng) 過LVS,LVS是一個開源的軟件,其全稱為:Linux Virtual Server,可以實現(xiàn)LINUX平臺下 的簡單負(fù)載均衡。比如,在一個云存儲系統(tǒng)中,由Web服務(wù)器接收用戶上傳的文件,然后,通 過LVS選擇存儲節(jié)點,把數(shù)據(jù)保存在存儲節(jié)點。如圖1所示,Web服務(wù)器如果想要訪問后臺 數(shù)據(jù)庫服務(wù)器集群中的一個數(shù)據(jù)庫進行數(shù)據(jù)的存取,要通過LVS來和該數(shù)據(jù)庫打交道,通 常的流程是Web服務(wù)器首先連接LVS,然后,LVS根據(jù)算法取一個后臺數(shù)據(jù)庫,接著,Web服 務(wù)器根據(jù)LVS運行的模式,通過直接或者間接的方式與數(shù)據(jù)庫打交道。例如,LVS在采用IP Tunneling (隧道技術(shù))模式的情況下,Web服務(wù)器需要與后臺數(shù)據(jù)庫2建立聯(lián)系,則Web服 務(wù)器首先連接LVS,LVS根據(jù)特定算法,把Web服務(wù)器的服務(wù)請求發(fā)給數(shù)據(jù)庫2進行處理,數(shù) 據(jù)庫2將處理結(jié)果返回給LVS,LVS再把該結(jié)果返回給Web服務(wù)器。
[0003]在現(xiàn)有技術(shù)的處理模式中,由于處理請求的過程中多了一次LVS網(wǎng)絡(luò)連接,這勢 必會增加Web服務(wù)器與數(shù)據(jù)庫之間處理應(yīng)答的響應(yīng)時間,如果在后臺的數(shù)據(jù)庫或者其他服 務(wù)器需要很長的處理時間時,LVS會把與后臺數(shù)據(jù)庫的連接斷掉,但是又不通知前面的Web 服務(wù)器,從而導(dǎo)致Web服務(wù)器的處理長時間等待。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上 述問題的服務(wù)器連接方法及服務(wù)器系統(tǒng)。
[0005]依據(jù)本發(fā)明的一個方面,提供了一種服務(wù)器連接方法,用于把WEB服務(wù)器連接到 后端服務(wù)器,該方法包括=Web服務(wù)器檢查本地是否緩存有后端服務(wù)器集群列表;若沒有緩 存所述后端服務(wù)器集群列表,則所述Web服務(wù)器通過配置服務(wù)器獲取所述后端服務(wù)器集群 列表并進行本地緩存;若緩存有所述后端服務(wù)器集群列表,則所述Web服務(wù)器獲取緩存的 后端服務(wù)器集群列表并從所述緩存的后端服務(wù)器集群列表中選擇指定后端服務(wù)器;所述 Web服務(wù)器直接連接所述指定后端服務(wù)器。
[0006]可選地,所述方法還包括:所述Web服務(wù)器發(fā)送數(shù)據(jù)處理請求至所述指定后端服 務(wù)器,并等待所述指定后端服務(wù)器返回的處理結(jié)果。
[0007]可選地,所述后端服務(wù)器集群列表發(fā)生變化時,所述Web服務(wù)器通過所述配置服 務(wù)器更新變化后的服務(wù)器集群列表并更新本地緩存。
[0008]可選地,所述配置服務(wù)器通過調(diào)取所述后端服務(wù)器集群的應(yīng)用程序編程接口獲得 所述后端服務(wù)器集群列表。
[0009]可選地,所述配置服務(wù)器按照設(shè)定的時間間隔讀取所述應(yīng)用程序編程接口來判斷所述后端服務(wù)器集群列表是否發(fā)生變化,若發(fā)生變化則根據(jù)變化情況更新其獲得的后端服 務(wù)器集群列表。
[0010]可選地,所述Web服務(wù)器從所述后端服務(wù)器集群列表中選擇指定服務(wù)器的方法采 用隨機選擇。
[0011]可選地,所述Web服務(wù)器從所述后端服務(wù)器集群列表中選擇指定服務(wù)器的方法采 用負(fù)載均衡方法。
[0012]可選地,所述負(fù)載均衡方法包括:所述Web服務(wù)器按下面公式計算所述后端服務(wù) 器集群列表中的各個后端服務(wù)器的負(fù)載值:后端服務(wù)器的負(fù)載值=kl*cpu使用量+k2*處理 器性能+k3*內(nèi)存余量+k4*帶寬資源;其中,所述kl為cpu使用量所對應(yīng)的權(quán)值,所述k2 為處理器性能所對應(yīng)的權(quán)值,所述k3為內(nèi)存余量所對應(yīng)的權(quán)值,所述k4為帶寬資源所對應(yīng) 的權(quán)值;所述Web服務(wù)器選擇負(fù)載值最小的后端服務(wù)器作為指定后端服務(wù)器。
[0013]根據(jù)本發(fā)明的另一方面,提供了一種服務(wù)器系統(tǒng),該系統(tǒng)包括Web服務(wù)器和配置 服務(wù)器:所述配置服務(wù)器,用于獲取后端服務(wù)器集群列表;所述Web服務(wù)器,用于檢查本地 是否緩存有后端服務(wù)器集群列表;若沒有緩存所述后端服務(wù)器集群列表,則從所述配置服 務(wù)器獲取所述后端服務(wù)器集群列表并進行本地緩存;若緩存有所述后端服務(wù)器集群列表, 則獲取緩存的后端服務(wù)器集群列表并從中選擇指定后端服務(wù)器,直接連接所述指定后端服 務(wù)器。
[0014]可選的,所述Web服務(wù)器包括列表獲取模塊、列表緩存模塊、服務(wù)器選取模塊和服 務(wù)器連接模塊:所述列表獲取模塊,用于檢查所述Web服務(wù)器本地是否緩存有后端服務(wù)器 集群列表,若沒有緩存所述后端服務(wù)器集群列表,則通過所述配置服務(wù)器獲取所述后端服 務(wù)器集群列表;所述列表緩存模塊,用于將所述列表獲取模塊所獲取的所述后端服務(wù)器集 群列表進行本地緩存;所述服務(wù)器選取模塊,用于從所述列表緩存模塊所緩存的后端服務(wù) 器集群列表中選擇指定后端服務(wù)器;所述服務(wù)器連接模塊,用于連接所述指定后端服務(wù)器。
[0015]可選地,所述Web服務(wù)器還包括數(shù)據(jù)處理模塊,所述數(shù)據(jù)處理模塊用于發(fā)送數(shù)據(jù) 處理請求至所述指定后端服務(wù)器,并等待所述指定后端服務(wù)器處理結(jié)束,將處理結(jié)果返回 至所述數(shù)據(jù)處理模塊。
[0016]可選地,所述配置服務(wù)器通過調(diào)取所述后端服務(wù)器集群的應(yīng)用程序編程接口獲得 所述后端服務(wù)器集群列表。
[0017]可選地,所述配置服務(wù)器按照設(shè)定的時間間隔讀取所述應(yīng)用程序編程接口來判斷 所述后端服務(wù)器集群列表是否發(fā)生變化,若發(fā)生變化則根據(jù)變化情況更新其獲得的后端服 務(wù)器集群列表。
[0018]根據(jù)本發(fā)明實施例的一種服務(wù)器連接方法可以看出,本公開基于配置服務(wù)器的連 接方法省略了 LVS的連接處理過程,由此減少了在處理請求過程中的網(wǎng)絡(luò)通信時間,解決 了現(xiàn)有技術(shù)中LVS斷掉后Web服務(wù)器進行長時間等待的問題。
[0019]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠 更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】
【附圖說明】[0020]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通 技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明 的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0021]圖1示出了現(xiàn)有技術(shù)中服務(wù)器的連接方法;
[0022]圖2示出了根據(jù)本發(fā)明實施例的原理示意圖;
[0023]圖3示出了根據(jù)本發(fā)明一個實施例的服務(wù)器系統(tǒng)處理過程;
[0024]圖4示出了根據(jù)本發(fā)明另一個實施例的服務(wù)器系統(tǒng)。
【具體實施方式】
[0025]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開 的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例 所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍 完整的傳達給本領(lǐng)域的技術(shù)人員。
[0026]如圖2所示,當(dāng)Web服務(wù)器需要與后端服務(wù)器,比如某數(shù)據(jù)庫集群中的第2個數(shù) 據(jù)庫進行數(shù)據(jù)通信時,首先要檢查本地是否緩存有后端服務(wù)器集群列表,若未發(fā)現(xiàn)本地緩 存的后端服務(wù)器集群列表,則通過配置服務(wù)器從后端服務(wù)器集群中獲取后端服務(wù)器集群列 表,并將該列表緩存在本地;當(dāng)Web服務(wù)器從本地緩存獲得后端服務(wù)器集群列表時,根據(jù)一 定策略選擇后端服務(wù)器的數(shù)據(jù)庫2,Web服務(wù)器直接連接選中的數(shù)據(jù)庫2,向其發(fā)送數(shù)據(jù)處 理請求,并等待處理結(jié)束。基于該原理所用的配置服務(wù)器例如為zooke印er配置服務(wù)器, Zookeeper是Google的Chubby —個開源的實現(xiàn),是高有效和可靠的協(xié)同工作系統(tǒng),在一個 分布式的環(huán)境中,需要一個Master實例或存儲一些配置信息,確保文件寫入的一致性等。 Zookeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),包含一個簡單的原語 集,是Hadoop和Hbase的重要組件。分布式應(yīng)用可以使用它來實現(xiàn)諸如:統(tǒng)一命名服務(wù)、配 置管理、分布式鎖服務(wù)、集群管理等功能。在Zooke印er中的每個節(jié)點叫做znode,并且其有 一個唯一的路徑標(biāo)識,znode是一個跟Unix文件系統(tǒng)路徑相似的節(jié)點,可以往這個節(jié)點存 儲或獲取數(shù)據(jù)。如果在創(chuàng)建znode時Flag設(shè)置為EPHEMERAL,那么當(dāng)創(chuàng)建的這個znod的 節(jié)點和Zookeeper失去連接后,這個znode將不再存在在Zookeeper里。Zookeeper使用 Watcher察覺事件信息,當(dāng)客戶端接收到事件信息,比如連接超時,節(jié)點數(shù)據(jù)改變,子節(jié)點 改變,可以調(diào)用相應(yīng)的行為來處理數(shù)據(jù)。ZooKeeper的基本運轉(zhuǎn)流程為:①選舉Leader -’② 同步數(shù)據(jù);③選舉Leader過程中算法有很多,但要達到的選舉標(biāo)準(zhǔn)是一致的Leader要 具有最高的zxid ;⑤集群中大多數(shù)的機器得到響應(yīng)并follow選出的Leader。
[0027]適用于本發(fā)明原理的策略選擇可以采用負(fù)載均衡算法,負(fù)載均衡算法中常用到的 有隨機選擇算法,隨機選擇算法是用負(fù)載均衡方法隨機的把負(fù)載分配到各個可用的服務(wù)器 上,通過隨機數(shù)生成算法選取一個服務(wù)器,然后把連接發(fā)送給它;還常用到的可以是輪詢 算法,輪詢算法按順序把每個新的連接請求分配給下一個服務(wù)器,最終把所有請求平分給 所有的服務(wù)器,輪詢算法在大多數(shù)情況下都工作的不錯,但是如果負(fù)載均衡的設(shè)備在處理 速度、連接速度和內(nèi)存等方面不是完全均等,那么效果會更好,當(dāng)然,進一步的,可以使用涉 及權(quán)重比例分配接受連接數(shù)量的加權(quán)輪詢算法,也可以使用對權(quán)重值持續(xù)監(jiān)控并不斷更新 的動態(tài)輪詢算法;還常用到的是最少連接算法,系統(tǒng)把新連接分配給當(dāng)前連接數(shù)目最少的服務(wù)器。該算法在各個服務(wù)器運算能力基本相似的環(huán)境中非常有效。例如,目前系統(tǒng)有個 20個搜索引擎服務(wù)器、I個總服務(wù)器、I個備用總服務(wù)器和一個web服務(wù)器,其中,每個搜 索引擎服務(wù)器負(fù)責(zé)總索引中的一部分搜索任務(wù),總服務(wù)器負(fù)責(zé)向這20個搜索引擎服務(wù)器 發(fā)出搜索請求并合并結(jié)果集,備用總服務(wù)器負(fù)責(zé)當(dāng)總服務(wù)器宕機時自動替換總服務(wù)器。當(dāng) web服務(wù)器的CGI (Common Gateway Interface)向總服務(wù)器發(fā)出搜索請求時,假設(shè)搜索 引擎服務(wù)器中的15個服務(wù)器現(xiàn)在提供搜索服務(wù),5個搜索引擎服務(wù)器正在生成索引,使用 Zookeeper可以保證總服務(wù)器自動感知有多少提供搜索引擎的服務(wù)器并向這些服務(wù)器發(fā)出 搜索請求,這20個搜索引擎服務(wù)器經(jīng)常要讓正在提供搜索服務(wù)的服務(wù)器停止提供服務(wù)開 始生成索引,或生成索引的服務(wù)器已經(jīng)把索引生成完成可以搜索提供服務(wù)了。
[0028]圖3所示為本發(fā)明的一個實施例,其原理與圖2所示一致,具體的,一種服務(wù)器連 接方法,用于把WEB服務(wù)器連接到后端服務(wù)器,該方法包括:
[0029]步驟S110,Web服務(wù)器檢查本地是否緩存有后端服務(wù)器集群列表,若沒有緩存,則 執(zhí)行步驟S120,若有緩存,則執(zhí)行步驟S130 ;
[0030]步驟S120,Web服務(wù)器通過配置服務(wù)器從后端服務(wù)器集群中獲取后端服務(wù)器集群 列表并進行本地緩存,該配置服務(wù)器是基于zookeeper的配置服務(wù)器,通過調(diào)取后端服務(wù) 器集群的應(yīng)用程序編程接口(API, Application Programming Interface)獲得后端服務(wù) 器集群列表,配置服務(wù)器按照設(shè)定的時間間隔讀取應(yīng)用程序編程接口(API)來判斷后端服 務(wù)器集群列表是否發(fā)生變化,若發(fā)生變化則根據(jù)變化情況更新其獲得的后端服務(wù)器集群列 表,并將更新后的后端服務(wù)器集群列表緩存在本地,當(dāng)然,配置服務(wù)器也可以通過管理員向 其手動輸入或更新后端服務(wù)器集群列表;
[0031]步驟S130,Web服務(wù)器獲取緩存的后端服務(wù)器集群列表并從所述緩存的后端服務(wù) 器集群列表中選擇指定后端服務(wù)器,這種選擇方法可以采用隨機選擇,也可以采用負(fù)載均 衡算法進行選擇,負(fù)載均衡算法可以為,Web服務(wù)器按下面公式計算后端服務(wù)器集群列表中 的各個后端服務(wù)器的負(fù)載值:
[0032]后端服務(wù)器的負(fù)載值=kl*cpu使用量+k2*處理器性能+k3*內(nèi)存余量+k4*帶寬 資源;
[0033]其中,所述kl為cpu使用量所對應(yīng)的權(quán)值,所述k2為處理器性能所對應(yīng)的權(quán)值, 所述k3為內(nèi)存余量所對應(yīng)的權(quán)值,所述k4為帶寬資源所對應(yīng)的權(quán)值,這些權(quán)值都是可以 根據(jù)需要人為設(shè)定的;Web服務(wù)器選擇負(fù)載值最小的后端服務(wù)器作為指定后端服務(wù)器;t匕 如后臺服務(wù)器集群列表中有3個數(shù)據(jù)庫,在各參數(shù)使用歸一化處理后數(shù)據(jù)庫I的負(fù)載值 =0.5+0.8+0.6+0.7=2.6 ;數(shù)據(jù)庫 2 的負(fù)載值=0.6+0.8+0.7+0.7=2.8 ;數(shù)據(jù)庫 3 的負(fù)載值 =0.8+0.7+0.3+0.7=2.5,則Web服務(wù)器選擇負(fù)載值最小的數(shù)據(jù)庫3作為指定后端服務(wù)器;
[0034]步驟S140,Web服務(wù)器直接連接指定后端服務(wù)器;
[0035]步驟S150,Web服務(wù)器發(fā)送數(shù)據(jù)處理請求至該指定后端服務(wù)器,并等待指定后端 服務(wù)器返回的處理結(jié)果。
[0036]通過本實施例可以發(fā)現(xiàn),Web服務(wù)器與后端服務(wù)器需要進行數(shù)據(jù)處理交換時,在 沒有后端服務(wù)器集群列表的情況下,可通過zookeeper配置服務(wù)器獲取后端服務(wù)器集群列 表,從而使Web服務(wù)器可以直接與后端服務(wù)器連接進行請求處理,網(wǎng)絡(luò)處理環(huán)節(jié)少了一個, 不需要經(jīng)過中間環(huán)節(jié)Web服務(wù)器即可與后端服務(wù)器直接通訊,明顯提高了處理效率。另外,在后端服務(wù)器處理沒有結(jié)束的情況下,Web服務(wù)器可以等待后端服務(wù)器的處理,而不會出現(xiàn) 連接被斷掉卻沒有感知的情況。使用zookwper配置服務(wù)器另一個好處是,當(dāng)后端服務(wù)器 集群列表發(fā)生變動時,zookeeper配置服務(wù)器能夠及時獲得更新內(nèi)容并通知Web服務(wù)器進 行本地緩存的更新。
[0037]圖4所示為本發(fā)明的另一個實施例,是基于圖2原理的一種服務(wù)器系統(tǒng),該系統(tǒng) 包括配置服務(wù)器310和Web服務(wù)器320,其中,配置服務(wù)器310用于獲取后端服務(wù)器集群列 表;Web服務(wù)器320用于檢查本地是否緩存有后端服務(wù)器集群列表;若沒有緩存后端服務(wù) 器集群列表,則從配置服務(wù)器310獲取后端服務(wù)器集群列表并進行本地緩存;若緩存有后 端服務(wù)器集群列表,則獲取緩存的后端服務(wù)器集群列表并從中選擇指定后端服務(wù)器,直接 連接該指定后端服務(wù)器進行數(shù)據(jù)通信。配置服務(wù)器310通過調(diào)取后端服務(wù)器集群的應(yīng)用程 序編程接口(API)獲得后端服務(wù)器集群列表,按照設(shè)定的時間間隔讀取應(yīng)用程序編程接口 (API)來判斷后端服務(wù)器集群列表是否發(fā)生變化,若發(fā)生變化則根據(jù)變化情況更新其獲得 的后端服務(wù)器集群列表。
[0038]進一步的,Web服務(wù)器包括列表獲取模塊321、列表緩存模塊322、服務(wù)器選取模塊 323、服務(wù)器連接模塊324和數(shù)據(jù)處理模塊325,其中,列表獲取模塊321用于檢查Web服務(wù) 器320本地是否緩存有后端服務(wù)器集群列表,若沒有緩存后端服務(wù)器集群列表,則通過配 置服務(wù)器310獲取后端服務(wù)器集群列表;列表緩存模塊322用于將列表獲取模塊321所獲 取的后端服務(wù)器集群列表進行本地緩存;服務(wù)器選取模塊323用于從列表緩存模塊322所 緩存的后端服務(wù)器集群列表中選擇指定后端服務(wù)器;服務(wù)器連接模塊324用于連接指定后 端服務(wù)器;數(shù)據(jù)處理模塊325用于發(fā)送數(shù)據(jù)處理請求至指定后端服務(wù)器,并等待指定后端 服務(wù)器處理結(jié)束,將處理結(jié)果返回至數(shù)據(jù)處理模塊。
[0039]需要說明的是,本發(fā)明實施例提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng) 或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描 述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。 應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所 做的描述是為了披露本發(fā)明的最佳實施方式。
[0040]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施 例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu) 和技術(shù),以便不模糊對本說明書的理解。
[0041]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在 上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施 例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保 護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面 的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此, 遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身 都作為本發(fā)明的單獨實施例。
[0042]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地 改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單 元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任 何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的 任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的 權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0043]應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng) 域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中, 不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在 未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這 樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來 實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件 項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為 名稱。
【權(quán)利要求】
1.一種服務(wù)器連接方法,用于把WEB服務(wù)器連接到后端服務(wù)器,該方法包括: Web服務(wù)器檢查本地是否緩存有后端服務(wù)器集群列表; 若沒有緩存所述后端服務(wù)器集群列表,則所述Web服務(wù)器通過配置服務(wù)器獲取所述后端服務(wù)器集群列表并進行本地緩存; 若緩存有所述后端服務(wù)器集群列表,則所述Web服務(wù)器獲取緩存的后端服務(wù)器集群列表并從所述緩存的后端服務(wù)器集群列表中選擇指定后端服務(wù)器; 所述Web服務(wù)器直接連接所述指定后端服務(wù)器。
2.根據(jù)權(quán)利要求1所述的服務(wù)器連接方法,所述方法還包括: 所述Web服務(wù)器發(fā)送數(shù)據(jù)處理請求至所述指定后端服務(wù)器,并等待所述指定后端服務(wù)器返回的處理結(jié)果。
3.根據(jù)權(quán)利要求1所述的服務(wù)器連接方法,所述后端服務(wù)器集群列表發(fā)生變化時,所述Web服務(wù)器通過所述配置服務(wù)器更新變化后的服務(wù)器集群列表并更新本地緩存。
4.根據(jù)權(quán)利要求1所述的服務(wù)器連接方法,所述配置服務(wù)器通過調(diào)取所述后端服務(wù)器集群的應(yīng)用程序編程接口獲得所述后端服務(wù)器集群列表。
5.根據(jù)權(quán)利要求4所述的服務(wù)器連接方法,所述配置服務(wù)器按照設(shè)定的時間間隔讀取所述應(yīng)用程序編程接口來判斷所述后端服務(wù)器集群列表是否發(fā)生變化,若發(fā)生變化則根據(jù)變化情況更新其獲得的后端服務(wù)器集群列表。
6.根據(jù)權(quán)利要求1所述`的服務(wù)器連接方法,所述Web服務(wù)器從所述后端服務(wù)器集群列表中選擇指定服務(wù)器的方法采用隨機選擇。
7.根據(jù)權(quán)利要求1所述的服務(wù)器連接方法,所述Web服務(wù)器從所述后端服務(wù)器集群列表中選擇指定服務(wù)器的方法采用負(fù)載均衡方法。
8.根據(jù)權(quán)利要求6所述的服務(wù)器連接方法,所述負(fù)載均衡方法包括: 所述Web服務(wù)器按下面公式計算所述后端服務(wù)器集群列表中的各個后端服務(wù)器的負(fù)載值: 后端服務(wù)器的負(fù)載值=kl*cpu使用量+k2*處理器性能+k3*內(nèi)存余量+k4*帶寬資源; 其中,所述kl為cpu使用量所對應(yīng)的權(quán)值,所述k2為處理器性能所對應(yīng)的權(quán)值,所述k3為內(nèi)存余量所對應(yīng)的權(quán)值,所述k4為帶寬資源所對應(yīng)的權(quán)值; 所述Web服務(wù)器選擇負(fù)載值最小的后端服務(wù)器作為指定后端服務(wù)器。
9.一種服務(wù)器系統(tǒng),該系統(tǒng)包括Web服務(wù)器和配置服務(wù)器: 所述配置服務(wù)器,用于獲取后端服務(wù)器集群列表; 所述Web服務(wù)器,用于檢查本地是否緩存有后端服務(wù)器集群列表;若沒有緩存所述后端服務(wù)器集群列表,則從所述配置服務(wù)器獲取所述后端服務(wù)器集群列表并進行本地緩存;若緩存有所述后端服務(wù)器集群列表,則獲取緩存的后端服務(wù)器集群列表并從中選擇指定后端服務(wù)器,直接連接所述指定后端服務(wù)器。
10.根據(jù)權(quán)利要求9所述的一種服務(wù)器系統(tǒng),所述Web服務(wù)器包括列表獲取模塊、列表緩存模塊、服務(wù)器選取模塊和服務(wù)器連接模塊: 所述列表獲取模塊,用于檢查所述Web服務(wù)器本地是否緩存有后端服務(wù)器集群列表,若沒有緩存所述后端服務(wù)器集群列表,則通過所述配置服務(wù)器獲取所述后端服務(wù)器集群列表;所述列表緩存模塊,用于將所述列表獲取模塊所獲取的所述后端服務(wù)器集群列表進行本地緩存;所述服務(wù)器選取模塊,用于從所述列表緩存模塊所緩存的后端服務(wù)器集群列表中選擇指定后端服務(wù)器; 所述服務(wù)器連接模塊,用于連接所述指定后端服務(wù)器。
【文檔編號】H04L29/08GK103607424SQ201310507446
【公開日】2014年2月26日 申請日期:2013年10月24日 優(yōu)先權(quán)日:2013年10月24日
【發(fā)明者】馮所范, 劉中超, 王超 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司