專利名稱:一種提高計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)容量的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中用戶端與服務(wù)器之間的交互技術(shù),更具體地說,涉及一種提高計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)容量的方法。
如
圖1所示,當(dāng)系統(tǒng)容量較小,只有一臺(tái)服務(wù)器,在這種系統(tǒng)中,每個(gè)用戶端處理信息都必須與唯一的服務(wù)器打交道。當(dāng)用戶端越來越多時(shí),服務(wù)器就處理不過來。
如圖2所示,為了增加容量,常見的改進(jìn)是使用多臺(tái)具有相同功能的服務(wù)器來處理用戶端的請(qǐng)求,并增加一臺(tái)轉(zhuǎn)發(fā)服務(wù)器以對(duì)用戶請(qǐng)求進(jìn)行分流??梢?,在這種計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,專門設(shè)置了一個(gè)轉(zhuǎn)發(fā)服務(wù)器用于轉(zhuǎn)發(fā)用戶端的請(qǐng)求;真正的信息處理交給后面的一組服務(wù)器處理。轉(zhuǎn)發(fā)服務(wù)器相對(duì)于以前處理用戶端請(qǐng)求的服務(wù)器而言,處理負(fù)擔(dān)大大降低,系統(tǒng)容量得到進(jìn)一步增加。對(duì)用戶端來說,服務(wù)器還是只有一個(gè),它并不需要知道除轉(zhuǎn)發(fā)服務(wù)器以外的服務(wù)器。
配置有轉(zhuǎn)發(fā)服務(wù)器的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)雖然容量得到了增加,但是所有用戶端還是必須經(jīng)過唯一的轉(zhuǎn)發(fā)服務(wù)器。如果用戶端數(shù)量繼續(xù)增加,轉(zhuǎn)發(fā)服務(wù)器又會(huì)成為系統(tǒng)的瓶頸。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種提高計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)容量的方法,所述計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)包括M個(gè)不同的用戶,以及N個(gè)用于執(zhí)行相同功能的服務(wù)器,其特征在于,所述計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)為每一位所述用戶分配一個(gè)用戶標(biāo)識(shí),每一位所述用戶按以下步驟與一個(gè)對(duì)應(yīng)的服務(wù)器進(jìn)行通信(1)、根據(jù)所述用戶標(biāo)識(shí)推算出與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào);(2)、用戶與所述序號(hào)指向的服務(wù)器進(jìn)行通信。
根據(jù)本發(fā)明的方法,所述用戶標(biāo)識(shí)可以是由純數(shù)字組成的用戶號(hào)碼;還可以是是由純字母、字母加數(shù)字、字母加其它字符、或者字母加數(shù)字再加其它字符所組成的用戶名。
根據(jù)本發(fā)明的方法,對(duì)于采用所述用戶號(hào)碼或用戶名的情況,在所述步驟(1)中,可取其前P個(gè)字符進(jìn)行分組,其中P可等于或大于1,每一組對(duì)應(yīng)一個(gè)序號(hào)的服務(wù)器,每一個(gè)序號(hào)的服務(wù)器可對(duì)應(yīng)一個(gè)或多個(gè)分組。
根據(jù)本發(fā)明的方法,對(duì)于采用所述用戶名的情況,在所述步驟(1)中,可在用戶端采用散列(Hash)函數(shù)將所述用戶名轉(zhuǎn)換為以數(shù)字表示的內(nèi)部用戶號(hào),再根據(jù)所述內(nèi)部用戶號(hào)推算出與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào)。例如使用MD5函數(shù)將所述用戶名轉(zhuǎn)換為128位的內(nèi)部用戶號(hào)。
根據(jù)本發(fā)明的方法,對(duì)于采用所述用戶號(hào)碼或內(nèi)部用戶號(hào)的情況,可按由小到大順序分為N個(gè)范圍段,每一個(gè)范圍段對(duì)應(yīng)一個(gè)服務(wù)器的序號(hào);還可以所述用戶號(hào)碼或內(nèi)部用戶號(hào)除以所述服務(wù)器數(shù)目N所得的余數(shù)作為與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào)。如果所述內(nèi)部用戶號(hào)太大,還可取各個(gè)內(nèi)部用戶號(hào)的特定位數(shù)除以所述服務(wù)器數(shù)目N,以所得的余數(shù)作為與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào)。
根據(jù)本發(fā)明的方法,當(dāng)用戶數(shù)目或服務(wù)器數(shù)目改變時(shí),可按以下步驟更新選擇服務(wù)器的選擇標(biāo)準(zhǔn)a、服務(wù)器向用戶端發(fā)送新的服務(wù)器選擇標(biāo)準(zhǔn);b、用戶端使用收到的所述新服務(wù)器選擇標(biāo)準(zhǔn)替代原有的服務(wù)器選擇標(biāo)準(zhǔn);c、用戶端使用新的服務(wù)器選擇標(biāo)準(zhǔn)選擇與之對(duì)應(yīng)的服務(wù)器。
由上述方案可見,本發(fā)明可在用戶端直接實(shí)現(xiàn)轉(zhuǎn)發(fā)服務(wù)器的功能,系統(tǒng)中不再需要轉(zhuǎn)發(fā)服務(wù)器,從而消除了增加系統(tǒng)容量的瓶頸。當(dāng)用戶數(shù)目增加時(shí),只需要增加服務(wù)器數(shù)目,并適當(dāng)更新或修改服務(wù)器的序號(hào)的選擇規(guī)則,將一部分用戶分流到新增服務(wù)器去即可,這樣計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)的容量幾乎可以無限制的增加。
本發(fā)明中,當(dāng)所述用戶標(biāo)識(shí)是由純數(shù)字組成的用戶號(hào)碼時(shí),或者是由純字母、字母加數(shù)字、字母加其它字符、或者字母加數(shù)字再加其它字符所組成的用戶名時(shí),都可取用戶號(hào)碼或用戶名的前P個(gè)字符進(jìn)行分組,其中P可等于或大于1,每一組對(duì)應(yīng)一個(gè)序號(hào)的服務(wù)器,每一個(gè)序號(hào)的服務(wù)器可對(duì)應(yīng)一個(gè)或多個(gè)分組。
例如當(dāng)系統(tǒng)容量較小時(shí),可取P=1,即以用戶號(hào)碼或用戶名的第1位字符來進(jìn)行分組,按表1推算出與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào),其中,以0開頭的用戶號(hào)碼或用戶名都分到服務(wù)器0,以a開頭的用戶號(hào)碼或用戶名都分到服務(wù)器6,依此類推。
表1
當(dāng)系統(tǒng)容量較大時(shí),可取P>1,表2中以P=2進(jìn)行示例,此時(shí)按表2推算出與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào),其中,以00開頭的用戶號(hào)碼或用戶名都分到服務(wù)器0,以ac開頭的用戶號(hào)碼或用戶名都分到服務(wù)器27,依此類推。
表2
對(duì)于使用由純字母、字母加數(shù)字、字母加其它字符、或者字母加數(shù)字再加其它字符所組成的用戶名作為標(biāo)識(shí)的系統(tǒng),根據(jù)用戶名查找該用戶對(duì)應(yīng)的信息很耗費(fèi)服務(wù)器資源。為了進(jìn)一步提高系統(tǒng)容量,可以將這部分工作也轉(zhuǎn)移到用戶端。在用戶端采用散列(Hash)函數(shù)將用戶名轉(zhuǎn)換為以數(shù)字表示的內(nèi)部用戶號(hào),再根據(jù)內(nèi)部用戶號(hào)推算出與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào)。例如使用MD5函數(shù)將所述用戶名轉(zhuǎn)換為128位的內(nèi)部用戶號(hào)。MD5,即Message Digest version 5,可譯作消息摘要,是一種散列函數(shù),可以將任意長(zhǎng)度的消息數(shù)據(jù)變換為128位的摘要,沒有兩個(gè)消息可以產(chǎn)生一樣的摘要,也不可能找到一個(gè)消息使得他的摘要為指定值,即不可反推。
本發(fā)明中,內(nèi)部用戶號(hào)與服務(wù)器的序號(hào)之間的對(duì)應(yīng)關(guān)系可采用以下兩種方法1、取內(nèi)部用戶號(hào)除以服務(wù)器數(shù)目N所得的余數(shù)作為與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào),如表3所示,其中,整除時(shí)對(duì)應(yīng)服務(wù)器0、例如余數(shù)為1是對(duì)應(yīng)服務(wù)器1,依此類推,余數(shù)為N-1時(shí)對(duì)應(yīng)服務(wù)器N-1。
表3
如果有需要,也可以由多個(gè)余數(shù)對(duì)應(yīng)同一個(gè)服務(wù)器,以平衡服務(wù)器的負(fù)擔(dān),即余數(shù)與服務(wù)器的對(duì)應(yīng)關(guān)系是一對(duì)一或者多對(duì)一關(guān)系。
2、將所有的內(nèi)部用戶號(hào)按由小到大順序分為N個(gè)范圍段,每一個(gè)范圍段對(duì)應(yīng)一個(gè)服務(wù)器的序號(hào),如表4所示,其中,位于范圍段0-a0的內(nèi)部用戶號(hào)對(duì)應(yīng)服務(wù)器1、位于范圍段a0-a1的內(nèi)部用戶號(hào)對(duì)應(yīng)服務(wù)器1,依此類推。
表4
如果內(nèi)部用戶號(hào)太大,還可以使用內(nèi)部用戶號(hào)的一部分,如最低32位進(jìn)行運(yùn)算。
本發(fā)明中,當(dāng)用戶標(biāo)識(shí)是由純數(shù)字組成的用戶號(hào)碼時(shí),也可采用上述方法1和方法2來選擇與所述用戶端對(duì)應(yīng)服務(wù)器的序號(hào)。
本發(fā)明的方法在用戶端直接實(shí)現(xiàn)轉(zhuǎn)發(fā)服務(wù)器的功能,當(dāng)用戶數(shù)目增加時(shí),只需要增加服務(wù)器數(shù)目,并適當(dāng)更新或修改服務(wù)器的序號(hào)的選擇規(guī)則,將一部分用戶分流到新增服務(wù)器去即可,這樣計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)的容量幾乎可以無限制的增加。當(dāng)用戶數(shù)目或服務(wù)器數(shù)目改變時(shí),可按以下步驟更新選擇服務(wù)器的選擇標(biāo)準(zhǔn)a、服務(wù)器向用戶端發(fā)送新的服務(wù)器選擇標(biāo)準(zhǔn);b、用戶端使用收到的所述新服務(wù)器選擇標(biāo)準(zhǔn)替代原有的服務(wù)器選擇標(biāo)準(zhǔn);
c、用戶端使用新的服務(wù)器選擇標(biāo)準(zhǔn)選擇與之對(duì)應(yīng)的服務(wù)器。
本發(fā)明的方法可以使用于互聯(lián)網(wǎng)的即時(shí)聊天系統(tǒng)。在即時(shí)聊天系統(tǒng)中,需要使用服務(wù)器保存每個(gè)用戶的當(dāng)前網(wǎng)絡(luò)地址,用戶向服務(wù)器注冊(cè)自己的當(dāng)前網(wǎng)絡(luò)地址,并向服務(wù)器查詢自己希望與其聊天的用戶的當(dāng)前網(wǎng)絡(luò)地址。
用戶端計(jì)算機(jī)使用本發(fā)明的其中一種方法更新網(wǎng)絡(luò)地址的流程如下(1)、用戶端計(jì)算機(jī)采用散列函數(shù)將自己的用戶名轉(zhuǎn)換為內(nèi)部用戶號(hào);(2)、用戶端計(jì)算機(jī)根據(jù)自己的內(nèi)部用戶號(hào)推算出與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào);(3)、用戶端計(jì)算機(jī)將自己的內(nèi)部用戶號(hào)、用戶名、當(dāng)前網(wǎng)絡(luò)地址、更新請(qǐng)求等信息發(fā)送給該序號(hào)所指向的服務(wù)器;(4)、服務(wù)器收到用戶的請(qǐng)求后將用戶信息保存。
用戶端計(jì)算機(jī)使用本發(fā)明的方法查詢其它用戶的網(wǎng)絡(luò)地址的流程如下(1)、用戶端計(jì)算機(jī)采用散列函數(shù)將目標(biāo)用戶的用戶名轉(zhuǎn)換為目標(biāo)內(nèi)部用戶號(hào);(2)、用戶端計(jì)算機(jī)根據(jù)目標(biāo)內(nèi)部用戶號(hào)算出與所述用戶端對(duì)應(yīng)的目標(biāo)服務(wù)器的序號(hào);(3)、用戶端計(jì)算機(jī)將目標(biāo)內(nèi)部用戶號(hào)、目標(biāo)用戶名以及查詢請(qǐng)求發(fā)送到所述目標(biāo)服務(wù)器;(4)、目標(biāo)服務(wù)器向發(fā)出請(qǐng)求的用戶端計(jì)算機(jī)反饋目標(biāo)用戶的信息。
權(quán)利要求
1.一種提高計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)容量的方法,所述計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)包括M個(gè)不同的用戶,以及N個(gè)用于執(zhí)行相同功能的服務(wù)器,其特征在于,所述計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)為每一位所述用戶分配一個(gè)用戶標(biāo)識(shí),每一位所述用戶按以下步驟與一個(gè)對(duì)應(yīng)的服務(wù)器進(jìn)行通信(1)、根據(jù)所述用戶標(biāo)識(shí)推算出與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào);(2)、用戶與所述序號(hào)指向的服務(wù)器進(jìn)行通信。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述用戶標(biāo)識(shí)是由純數(shù)字組成的用戶號(hào)碼。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述用戶標(biāo)識(shí)是由純字母、字母加數(shù)字、字母加其它字符、或者字母加數(shù)字再加其它字符所組成的用戶名。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,在所述步驟(1)中,取所述用戶號(hào)碼或用戶名的前P個(gè)字符進(jìn)行分組,其中P可等于或大于1,每一組對(duì)應(yīng)一個(gè)序號(hào)的服務(wù)器,每一個(gè)序號(hào)的服務(wù)器可對(duì)應(yīng)一個(gè)或多個(gè)分組。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述步驟(1)中,采用散列函數(shù)將所述用戶名轉(zhuǎn)換為以數(shù)字表示的內(nèi)部用戶號(hào),再根據(jù)所述內(nèi)部用戶號(hào)推算出與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào)。
6.根據(jù)權(quán)利要求2或5所述的方法,其特征在于,在所述步驟(1)中,將所有的用戶號(hào)碼或所有的內(nèi)部用戶號(hào)按由小到大順序分為與所述服務(wù)器數(shù)目相等的N個(gè)范圍段,每一個(gè)范圍段對(duì)應(yīng)一個(gè)服務(wù)器的序號(hào)。
7.根據(jù)權(quán)利要求2或5所述的方法,其特征在于,在所述步驟(1)中,可取所述用戶號(hào)碼或內(nèi)部用戶號(hào)除以所述服務(wù)器數(shù)目N所得的余數(shù)作為與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào)。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,還可取各個(gè)內(nèi)部用戶號(hào)的特定位數(shù)除以所述服務(wù)器數(shù)目N,以所得的余數(shù)作為與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào)。
9.根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述步驟(1)中,使用MD5函數(shù)將所述用戶名轉(zhuǎn)換為128位的內(nèi)部用戶號(hào)。
10.根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,當(dāng)用戶數(shù)目或服務(wù)器數(shù)目改變時(shí),可按以下步驟更新選擇服務(wù)器的選擇標(biāo)準(zhǔn)a、服務(wù)器向用戶端發(fā)送新的服務(wù)器選擇標(biāo)準(zhǔn);b、用戶端使用收到的所述新服務(wù)器選擇標(biāo)準(zhǔn)替代原有的服務(wù)器選擇標(biāo)準(zhǔn);c、用戶端使用新的服務(wù)器選擇標(biāo)準(zhǔn)選擇與之對(duì)應(yīng)的服務(wù)器。
全文摘要
本發(fā)明涉及一種提高計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)容量的方法,所述計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)包括M個(gè)不同的用戶,以及N個(gè)用于執(zhí)行相同功能的服務(wù)器,其中M等于或大于N,其特征在于,所述計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)為每一位所述用戶分配一個(gè)用戶標(biāo)識(shí),每一位所述用戶按以下步驟與一個(gè)對(duì)應(yīng)的服務(wù)器進(jìn)行通信(1)根據(jù)所述用戶標(biāo)識(shí)推算出與所述用戶端對(duì)應(yīng)的服務(wù)器的序號(hào);(2)用戶與所述序號(hào)指向的服務(wù)器進(jìn)行通信。本發(fā)明中,可在用戶端直接實(shí)現(xiàn)轉(zhuǎn)發(fā)服務(wù)器的功能,系統(tǒng)中不再需要轉(zhuǎn)發(fā)服務(wù)器,從而消除了增加系統(tǒng)容量的瓶頸。
文檔編號(hào)G06F15/16GK1464414SQ02134279
公開日2003年12月31日 申請(qǐng)日期2002年6月28日 優(yōu)先權(quán)日2002年6月28日
發(fā)明者楊俊群 申請(qǐng)人:楊俊群