一種應(yīng)用服務(wù)器動(dòng)態(tài)快速分配方法
【專利摘要】本發(fā)明公開了一種應(yīng)用服務(wù)器動(dòng)態(tài)快速分配方法,包括分配服務(wù)器生成備選服務(wù)器數(shù)組,新用戶接入時(shí)根據(jù)生成的數(shù)組索引,在備選服務(wù)器數(shù)組循環(huán)查找應(yīng)用服務(wù)器,通過(guò)與高速緩存服務(wù)器內(nèi)數(shù)據(jù)比較判斷當(dāng)前應(yīng)用服務(wù)器的服務(wù)用戶數(shù)是否達(dá)到限制值來(lái)決定將新用戶分配給當(dāng)前應(yīng)用服務(wù)器或是開始新一次查找;查找次數(shù)超出應(yīng)用服務(wù)器個(gè)數(shù)時(shí)退出。本發(fā)明方法在有大量用戶訪問(wèn)時(shí),可以快速將用戶動(dòng)態(tài)分配到不同應(yīng)用服務(wù)器上,降低單臺(tái)服務(wù)器的壓力,增強(qiáng)系統(tǒng)的并發(fā)能力。
【專利說(shuō)明】一種應(yīng)用服務(wù)器動(dòng)態(tài)快速分配方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種服務(wù)器負(fù)載分配方法,特別是涉及一種應(yīng)用服務(wù)器動(dòng)態(tài)快速分配方法。
【背景技術(shù)】
[0002]由于單臺(tái)服務(wù)器的計(jì)算瓶頸,在大量用戶并發(fā)的情況下,一般會(huì)把用戶分配到不同的服務(wù)器上,以減少單臺(tái)服務(wù)器的壓力。具體的分配方法需要滿足幾個(gè)特性:1)動(dòng)態(tài)2)均衡3)快速。
【發(fā)明內(nèi)容】
[0003]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種應(yīng)用服務(wù)器動(dòng)態(tài)快速分配方法,解決單臺(tái)服務(wù)器并發(fā)數(shù)有限,并且在高并發(fā)時(shí)處理速度較慢的問(wèn)題。
[0004]本發(fā)明的技術(shù)方案是這樣的:一種應(yīng)用服務(wù)器動(dòng)態(tài)快速分配方法,包括以下步驟:
[0005]1)分配服務(wù)器生成備選服務(wù)器數(shù)組,初始化索引為備選服務(wù)器數(shù)組的第一個(gè)元素位置,初始化循環(huán)次數(shù)為0,所述備選服務(wù)器數(shù)組中每個(gè)元素包括一個(gè)應(yīng)用服務(wù)器標(biāo)識(shí)以及對(duì)應(yīng)應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù),所述備選服務(wù)器數(shù)組的長(zhǎng)度為可用應(yīng)用服務(wù)器數(shù)量,新用戶接入時(shí)進(jìn)入步驟2);
[0006]2)比較循環(huán)次數(shù)與備選服務(wù)器數(shù)組的長(zhǎng)度,如果循環(huán)次數(shù)大于備選服務(wù)器數(shù)組的長(zhǎng)度,則結(jié)束流程;如果循環(huán)次數(shù)小于備選服務(wù)器數(shù)組的長(zhǎng)度,進(jìn)入步驟3);
[0007]3)將索引值加1后對(duì)備選服務(wù)器數(shù)組的長(zhǎng)度取余賦值給索引;
[0008]4)根據(jù)當(dāng)前索引值從備選服務(wù)器數(shù)組中獲取相應(yīng)的應(yīng)用服務(wù)器標(biāo)識(shí)以及應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù);
[0009]5)分配服務(wù)器將應(yīng)用服務(wù)器標(biāo)識(shí)傳給高速緩存服務(wù)器,高速緩存服務(wù)器根據(jù)應(yīng)用服務(wù)器標(biāo)識(shí)獲取對(duì)應(yīng)的應(yīng)用服務(wù)器的當(dāng)前服務(wù)用戶數(shù),并將應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù)返回給分配服務(wù)器;
[0010]6)分配服務(wù)器比較應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù)與應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù),如果應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù)小于應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù),進(jìn)入步驟8),如果應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù)大于應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù),進(jìn)入步驟7);
[0011]7)循環(huán)次數(shù)加1并返回步驟2);
[0012]8)循環(huán)次數(shù)設(shè)為0進(jìn)入步驟9);
[0013]9)將新用戶接入當(dāng)前應(yīng)用服務(wù)器標(biāo)識(shí)所對(duì)應(yīng)的應(yīng)用服務(wù)器,結(jié)束流程。
[0014]在本發(fā)明的一個(gè)具體實(shí)施例中,所述分配服務(wù)器生成備選服務(wù)器數(shù)組是分配服務(wù)器根據(jù)應(yīng)用服務(wù)器的配置文件生成的。
[0015]本發(fā)明所提供的技術(shù)方案,在有大量用戶訪問(wèn)時(shí),可以快速將用戶動(dòng)態(tài)分配到不同應(yīng)用服務(wù)器上,降低單臺(tái)服務(wù)器的壓力,增強(qiáng)系統(tǒng)的并發(fā)能力,并具有以下效果:
[0016]a)分配速度快,耗時(shí)極短;
[0017]b)各服務(wù)器被分配幾率相近,不會(huì)出現(xiàn)有的服務(wù)器分配用戶很多,有的服務(wù)器很少分配用戶的情況;
[0018]c)支持動(dòng)態(tài)擴(kuò)展服務(wù)器,數(shù)量可以動(dòng)態(tài)增減;
[0019]d)服務(wù)器可承載的用戶量可以設(shè)置,不會(huì)出現(xiàn)超負(fù)載問(wèn)題。
【專利附圖】
【附圖說(shuō)明】
[0020]圖1為服務(wù)器關(guān)系不意圖。
[0021]圖2為本發(fā)明動(dòng)態(tài)快速分配方法流程示意圖。
【具體實(shí)施方式】
[0022]下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,但不作為對(duì)本發(fā)明的限定。
[0023]請(qǐng)結(jié)合圖1及圖2,本實(shí)施例涉及三類服務(wù)器,分別是應(yīng)用服務(wù)器、高速緩存服務(wù)器、分配服務(wù)器,這三類服務(wù)器的作用分別如下:
[0024]分配服務(wù)器:負(fù)責(zé)將用戶分配到應(yīng)用服務(wù)器上。每臺(tái)分配服務(wù)器存放一個(gè)系統(tǒng)可用應(yīng)用服務(wù)器配置文件。每臺(tái)應(yīng)用服務(wù)器在配置文件中對(duì)應(yīng)有一條配置記錄,內(nèi)容為應(yīng)用服務(wù)器的標(biāo)識(shí)key、ip地址和最大并發(fā)用戶數(shù)max。分配服務(wù)器在系統(tǒng)啟動(dòng)后,將配置文件加載到內(nèi)存中,生成一個(gè)備選服務(wù)器數(shù)組。
[0025]高速緩存服務(wù)器:提供記錄每臺(tái)應(yīng)用服務(wù)器的當(dāng)前服務(wù)用戶數(shù)服務(wù)。高速緩存服務(wù)器使用Hash表做存儲(chǔ)結(jié)構(gòu),Hash表存儲(chǔ)各個(gè)應(yīng)用服務(wù)器的標(biāo)識(shí)key,以及與各個(gè)key對(duì)應(yīng)的value, value為應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù)。key為從1開始的整數(shù),value是大于等于0的整數(shù)。
[0026]應(yīng)用服務(wù)器:負(fù)責(zé)維護(hù)自身服務(wù)用戶數(shù)。當(dāng)需要服務(wù)新用戶時(shí),應(yīng)用服務(wù)器通知高速緩存服務(wù)器自身當(dāng)前服務(wù)用戶數(shù)加1。當(dāng)用戶不再使用服務(wù)時(shí),應(yīng)用服務(wù)器通知高速緩存服務(wù)器自身當(dāng)前服務(wù)用戶數(shù)減1。
[0027]應(yīng)用服務(wù)器動(dòng)態(tài)快速分配方法的具體過(guò)程如下:
[0028]1)初始化:分配服務(wù)器在啟動(dòng)后,加載系統(tǒng)可用應(yīng)用服務(wù)器配置文件,根據(jù)配置文件生成一個(gè)備選服務(wù)器數(shù)組,每個(gè)數(shù)組的元素對(duì)應(yīng)一條應(yīng)用服務(wù)器配置記錄,數(shù)組的長(zhǎng)度length代表可用應(yīng)用服務(wù)器的數(shù)量。初始化備選服務(wù)器的索引index為數(shù)組的第一個(gè)元素的位置,即index = 0。初始化循環(huán)次數(shù)number為0。當(dāng)有新用戶需要被分配到應(yīng)用服務(wù)器時(shí),進(jìn)入步驟2)。
[0029]2)比較number與length:先判斷number是否小于length。如果為否,貝U結(jié)束流程,并告訴用戶系統(tǒng)忙無(wú)法提供服務(wù)。如果是,進(jìn)入步驟3)。
[0030]3)生成備選服務(wù)器的索引:將index+Ι后對(duì)length取余賦值給index,即index=(index+1) % length,此index作為備選服務(wù)器的索引,進(jìn)入步驟4)。
[0031]4)獲取key:根據(jù)index從備選服務(wù)器數(shù)組中取得對(duì)應(yīng)服務(wù)器的配置信息中的key值,進(jìn)入步驟5)
[0032]5)獲取value:分配服務(wù)器將key值傳給高速緩存服務(wù)器,高速緩存服務(wù)器根據(jù)key值獲取對(duì)應(yīng)的value值,即應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù),并將value返回給分配服務(wù)器,進(jìn)入步驟6)。
[0033]6)比較value與max:分配服務(wù)器將value與此應(yīng)用服務(wù)器配置的最大并發(fā)用戶數(shù)max進(jìn)行比較。如果value〈max,進(jìn)入步驟8);否則,進(jìn)入步驟7)。
[0034]7) number 加 1,返回步驟 2)。
[0035]8) number賦值為0,進(jìn)入步驟9)
[0036]9)將用戶分配到當(dāng)前key值對(duì)應(yīng)的應(yīng)用服務(wù)器上,結(jié)束流程。
【權(quán)利要求】
1.一種應(yīng)用服務(wù)器動(dòng)態(tài)快速分配方法,其特征在于,包括以下步驟: 1)分配服務(wù)器生成備選服務(wù)器數(shù)組,初始化索引為備選服務(wù)器數(shù)組的第一個(gè)元素位置,初始化循環(huán)次數(shù)為0,所述備選服務(wù)器數(shù)組中每個(gè)元素包括一個(gè)應(yīng)用服務(wù)器標(biāo)識(shí)以及對(duì)應(yīng)應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù),所述備選服務(wù)器數(shù)組的長(zhǎng)度為可用應(yīng)用服務(wù)器數(shù)量,新用戶接入時(shí)進(jìn)入步驟2); 2)比較循環(huán)次數(shù)與備選服務(wù)器數(shù)組的長(zhǎng)度,如果循環(huán)次數(shù)大于備選服務(wù)器數(shù)組的長(zhǎng)度,則結(jié)束流程;如果循環(huán)次數(shù)小于備選服務(wù)器數(shù)組的長(zhǎng)度,進(jìn)入步驟3); 3)將索引值加1后對(duì)備選服務(wù)器數(shù)組的長(zhǎng)度取余賦值給索引; 4)根據(jù)當(dāng)前索引值從備選服務(wù)器數(shù)組中獲取相應(yīng)的應(yīng)用服務(wù)器標(biāo)識(shí)以及應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù); 5)分配服務(wù)器將應(yīng)用服務(wù)器標(biāo)識(shí)傳給高速緩存服務(wù)器,高速緩存服務(wù)器根據(jù)應(yīng)用服務(wù)器標(biāo)識(shí)獲取對(duì)應(yīng)的應(yīng)用服務(wù)器的當(dāng)前服務(wù)用戶數(shù),并將應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù)返回給分配服務(wù)器; 6)分配服務(wù)器比較應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù)與應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù),如果應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù)小于應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù),進(jìn)入步驟8),如果應(yīng)用服務(wù)器當(dāng)前服務(wù)用戶數(shù)大于應(yīng)用服務(wù)器的最大并發(fā)用戶數(shù),進(jìn)入步驟7); 7)循環(huán)次數(shù)加1并返回步驟2); 8)循環(huán)次數(shù)設(shè)為0進(jìn)入步驟9); 9)將新用戶接入當(dāng)前應(yīng)用服務(wù)器標(biāo)識(shí)所對(duì)應(yīng)的應(yīng)用服務(wù)器,結(jié)束流程。
2.根據(jù)權(quán)利要求1所述的應(yīng)用服務(wù)器動(dòng)態(tài)快速分配方法,其特征在于,所述分配服務(wù)器生成備選服務(wù)器數(shù)組是分配服務(wù)器根據(jù)應(yīng)用服務(wù)器的配置文件生成的。
【文檔編號(hào)】G06F17/30GK104462598SQ201410850932
【公開日】2015年3月25日 申請(qǐng)日期:2014年12月31日 優(yōu)先權(quán)日:2014年12月31日
【發(fā)明者】周維豐, 吳少剛, 張福新, 許胡明, 管斌 申請(qǐng)人:江蘇中科夢(mèng)蘭電子科技有限公司