服務(wù)器的負(fù)載均衡方法及其系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種服務(wù)器負(fù)載均衡方法及其系統(tǒng)。
【背景技術(shù)】
[0002]隨著internet技術(shù)的發(fā)展,用戶對(duì)web服務(wù)器、流媒體服務(wù)器等各種業(yè)務(wù)服務(wù)器的訪問(wèn)量服務(wù)和數(shù)據(jù)流量也急劇增加,容易引起服務(wù)器過(guò)載的問(wèn)題,現(xiàn)有技術(shù)一般采用負(fù)載均衡技術(shù)來(lái)解決該問(wèn)題。
[0003]負(fù)載均衡技術(shù)是根據(jù)負(fù)載情況均衡分配任務(wù)請(qǐng)求給服務(wù)器處理?,F(xiàn)有的負(fù)載均衡技術(shù)一般是將當(dāng)前請(qǐng)求分配給處理的連接數(shù)量最少的服務(wù)器,能夠防止部分服務(wù)器空閑。但是如果連接數(shù)量最少的服務(wù)器無(wú)法承受其瞬間分配的大量任務(wù)請(qǐng)求時(shí),也將導(dǎo)致該服務(wù)器過(guò)載和降低處理效率。
【發(fā)明內(nèi)容】
[0004]有鑒于此,實(shí)有必要提供一種有效防止服務(wù)器過(guò)載的服務(wù)器的負(fù)載均衡方法及系統(tǒng)。
[0005]—種服務(wù)器的負(fù)載均衡方法,包括步驟:接收至少一個(gè)客戶請(qǐng)求;選擇當(dāng)前處理量最少的業(yè)務(wù)服務(wù)器;根據(jù)預(yù)設(shè)算法計(jì)算分配給所有選擇的業(yè)務(wù)服務(wù)器的預(yù)估處理量;依次分配客戶請(qǐng)求給所有選擇的業(yè)務(wù)服務(wù)器;判斷所接收的客戶請(qǐng)求是否分配完畢,若所接收的客戶請(qǐng)求未分配完畢,則判斷分配給所有選擇的業(yè)務(wù)服務(wù)器的客戶請(qǐng)求是否超過(guò)與預(yù)估處理量;若分配給所有選擇的業(yè)務(wù)服務(wù)器的客戶請(qǐng)求超過(guò)預(yù)估處理量,則在未被選擇的業(yè)務(wù)服務(wù)器中選擇當(dāng)前處理量最少的業(yè)務(wù)服務(wù)器并重新計(jì)算分配給所有曾被選擇的業(yè)務(wù)服務(wù)器的預(yù)估處理量,并分配客戶請(qǐng)求給所有曾被選擇的業(yè)務(wù)服務(wù)器直至所接收的客戶請(qǐng)求分配完畢,以及若分配給所有選擇的業(yè)務(wù)服務(wù)器的客戶請(qǐng)求未都超過(guò)與上述步驟計(jì)算的預(yù)估處理量,則返回上述步驟中繼續(xù)分配客戶請(qǐng)求給所選擇的業(yè)務(wù)服務(wù)器,直至所接收的客戶請(qǐng)求均分配完畢。
[0006]—種負(fù)載均衡系統(tǒng)包括網(wǎng)關(guān)服務(wù)器端,用于與若干業(yè)務(wù)服務(wù)器通信,所述網(wǎng)關(guān)服務(wù)器包括:第一收發(fā)單元,用于接收客戶請(qǐng)求;統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)各業(yè)務(wù)服務(wù)器的當(dāng)前客戶請(qǐng)求的處理量;分配管理模塊,用于根據(jù)預(yù)設(shè)的分配規(guī)則分配客戶請(qǐng)求給業(yè)務(wù)服務(wù)器,其中所述分配管理模塊包括選擇單元、計(jì)算單元、判斷單元以及分配單元,選擇單元,用于按照預(yù)設(shè)規(guī)則首先選擇當(dāng)前處理量最少的業(yè)務(wù)服務(wù)器,隨后在未被選擇的業(yè)務(wù)服務(wù)器中選擇當(dāng)前處理量最少的業(yè)務(wù)服務(wù)器;計(jì)算單元,用于按照預(yù)設(shè)算法計(jì)算分配給所選擇的業(yè)務(wù)服務(wù)器的預(yù)估處理量;分配單元,用于按照預(yù)設(shè)分配規(guī)則,一個(gè)一個(gè)的分配客戶請(qǐng)求給所選擇的業(yè)務(wù)服務(wù)器;判斷單元,用于判斷所接收的客戶請(qǐng)求是否已經(jīng)分配完畢,若所接收的客戶請(qǐng)求未分配完畢,則分配單元繼續(xù)分配客戶請(qǐng)求;以及判斷單元還用于以判斷分配給所有選擇的業(yè)務(wù)服務(wù)器的客戶請(qǐng)求均超過(guò)預(yù)估處理量,若分配給所有選擇的業(yè)務(wù)服務(wù)器的客戶請(qǐng)求均超過(guò)預(yù)估處理量,則選擇單元在未被選擇的業(yè)務(wù)服務(wù)器中選擇當(dāng)前處理量最少的業(yè)務(wù)服務(wù)器并由計(jì)算單元重新計(jì)算分配給所有曾被選擇的業(yè)務(wù)服務(wù)器的預(yù)估處理量,以及由分配單元分配客戶請(qǐng)求給所有曾被選擇的業(yè)務(wù)服務(wù)器直至所接收的客戶請(qǐng)求分配完畢。
[0007]利用上述負(fù)載均衡方法以及負(fù)載均衡系統(tǒng),可以更加均衡的分配客戶業(yè)務(wù)量給服務(wù)器,解決部分服務(wù)器空閑以及服務(wù)器過(guò)載的問(wèn)題。
【附圖說(shuō)明】
[0008]圖1為實(shí)施方式的一種服務(wù)器的負(fù)載均衡系統(tǒng)的功能模塊圖。
[0009]圖2為實(shí)施方式的一種服務(wù)器的負(fù)載均衡方法的流程圖。
【具體實(shí)施方式】
[0010]下面將結(jié)合本發(fā)明實(shí)施方式中的附圖,對(duì)實(shí)施方式中的技術(shù)方案進(jìn)行清楚、完整的描述。
[0011]請(qǐng)參看圖1,其為服務(wù)器的負(fù)載均衡系統(tǒng)I的功能模塊圖。該負(fù)載均衡系統(tǒng)I包括網(wǎng)關(guān)服務(wù)器端10、若干業(yè)務(wù)服務(wù)器端20以及若干客戶端30。網(wǎng)關(guān)服務(wù)器端10、業(yè)務(wù)服務(wù)器端20和客戶端30通過(guò)網(wǎng)絡(luò)相互連接,以實(shí)現(xiàn)信息傳輸。客戶端30發(fā)送客戶請(qǐng)求給網(wǎng)關(guān)服務(wù)器端10時(shí),網(wǎng)關(guān)服務(wù)器端10根據(jù)預(yù)設(shè)規(guī)則選擇其中一個(gè)或者多個(gè)業(yè)務(wù)服務(wù)器端20來(lái)處理客戶請(qǐng)求。
[0012]客戶端30包括第二收發(fā)單元301,第二收發(fā)單元301用于實(shí)現(xiàn)客戶端30與網(wǎng)關(guān)服務(wù)器端10以及業(yè)務(wù)服務(wù)器端20之間的信息傳輸,包括接收和發(fā)送通信信息,例如用于發(fā)送客戶端30的客戶請(qǐng)求。
[0013]業(yè)務(wù)服務(wù)器端20包括若干個(gè)業(yè)務(wù)服務(wù)器201,所有的業(yè)務(wù)服務(wù)器201均用于處理客戶請(qǐng)求,若干個(gè)業(yè)務(wù)服務(wù)器201的設(shè)置是為了更加快速的處理客戶請(qǐng)求。
[0014]網(wǎng)關(guān)服務(wù)器端10包括統(tǒng)計(jì)模塊101、分配管理模塊102、定時(shí)更新模塊103、數(shù)據(jù)庫(kù)模塊104以及第一收發(fā)單元105。
[0015]第一收發(fā)單元105用于實(shí)現(xiàn)網(wǎng)關(guān)服務(wù)器端10與業(yè)務(wù)服務(wù)器端20以及客戶端30之間信息傳輸。例如,接收客戶端30發(fā)送的客戶請(qǐng)求。
[0016]統(tǒng)計(jì)模塊101用于統(tǒng)計(jì)各業(yè)務(wù)服務(wù)器201的當(dāng)前的客戶請(qǐng)求處理量。
[0017]分配管理模塊102用于根據(jù)各業(yè)務(wù)服務(wù)器201當(dāng)前的處理量和負(fù)載均衡預(yù)設(shè)規(guī)則分配客戶請(qǐng)求給相應(yīng)的業(yè)務(wù)服務(wù)器201。分配管理模塊102包括選擇單元1021、計(jì)算單元1022、判斷單元1023以及分配單元1024。
[0018]選擇單元1021用于根據(jù)預(yù)設(shè)規(guī)則選擇業(yè)務(wù)服務(wù)器201處理客戶請(qǐng)求。在本實(shí)施方式中,預(yù)設(shè)規(guī)則為首先選擇當(dāng)前處理量最少的業(yè)務(wù)服務(wù)器,且當(dāng)前處理量未超于預(yù)設(shè)值。其中業(yè)務(wù)服務(wù)器端的預(yù)設(shè)值設(shè)定為業(yè)務(wù)服務(wù)器處理業(yè)務(wù)的較佳效率下的可處理量,此基于優(yōu)化業(yè)務(wù)服務(wù)器處理業(yè)務(wù)的效率來(lái)考慮,因?yàn)楫?dāng)業(yè)務(wù)服務(wù)器的處理量超過(guò)一定值時(shí),此時(shí)再分配請(qǐng)求給業(yè)務(wù)服務(wù)器會(huì)增加該請(qǐng)求排隊(duì)等候處理的時(shí)間,導(dǎo)致業(yè)務(wù)服務(wù)器處理請(qǐng)求的效率降低。在其他實(shí)施方式中,可不設(shè)定預(yù)設(shè)值,但是基于優(yōu)化業(yè)務(wù)服務(wù)器處理效率,優(yōu)選本實(shí)施方式。
[0019]計(jì)算單元1022用于根據(jù)預(yù)設(shè)算法計(jì)算分配給所有選擇的業(yè)務(wù)服務(wù)器的預(yù)估處理量。在本實(shí)施方式中,設(shè)業(yè)務(wù)服務(wù)器的數(shù)量為n,統(tǒng)計(jì)模塊統(tǒng)計(jì)出當(dāng)前業(yè)務(wù)服務(wù)器的處理量分別為O1 ArOjOZO2GXOnt3在其他實(shí)施方式中,由于可能存在多個(gè)業(yè)務(wù)服務(wù)器201當(dāng)前處理量均相等,即O1= O2=…<0n。業(yè)務(wù)服務(wù)器的處理量可能對(duì)應(yīng)多個(gè)業(yè)務(wù)服務(wù)器201。在本實(shí)施方式中,預(yù)設(shè)算法中分配客戶請(qǐng)求給處理量為O1的業(yè)務(wù)服務(wù)器的預(yù)估處理量為C !=(O2-O1)^D,其中D為負(fù)載均衡分配常數(shù),為非O自然數(shù),且負(fù)載均衡分配常數(shù)D的設(shè)置是為了業(yè)務(wù)服務(wù)器201彼此之間的當(dāng)前處理量相差較大時(shí),可以解決分配給處理量少的業(yè)務(wù)服務(wù)器201的客戶請(qǐng)求量過(guò)大而導(dǎo)致客戶請(qǐng)求排隊(duì)等待處理時(shí)間長(zhǎng)的問(wèn)題,負(fù)載均衡分配常數(shù)D大小與業(yè)務(wù)服務(wù)器201彼此之間的當(dāng)前處理量的差值有關(guān)。依次推類,當(dāng)分配給處理量0撕業(yè)務(wù)服務(wù)器的客戶請(qǐng)求超過(guò)C i時(shí),隨后分配給處理量O 2的業(yè)務(wù)服務(wù)器以及分配給處理量O1的業(yè)務(wù)服務(wù)器的客戶請(qǐng)求預(yù)估處理量為C 2= (0 3— 0 2)+D,依次類推,當(dāng)有若干個(gè)業(yè)務(wù)服務(wù)器時(shí),分配給所有曾被選擇的業(yè)務(wù)服務(wù)器的預(yù)估處理量的預(yù)設(shè)算法為:Cn= (0n+1-0n) +D,其中Cn為此次分配給所選擇的處理量為On的業(yè)務(wù)服務(wù)器以及之前已選擇的業(yè)務(wù)服務(wù)器的預(yù)估處理量,其中0n+1、On分別為業(yè)務(wù)服務(wù)器的當(dāng)前處理量,其中O/J、于 0n+l。
[0020]分配單元1024用于按照預(yù)設(shè)分配規(guī)則,一個(gè)一個(gè)的分配客戶請(qǐng)求給所有選擇的業(yè)務(wù)服務(wù)器。在本實(shí)施方式中,預(yù)設(shè)分配規(guī)則為一個(gè)一個(gè)的分配客戶請(qǐng)求給所有選擇的業(yè)務(wù)服務(wù)器,當(dāng)分配給所有選擇業(yè)務(wù)服務(wù)器的客戶請(qǐng)求超過(guò)該業(yè)務(wù)服務(wù)器的預(yù)估處理量或者是分配客戶請(qǐng)求給業(yè)務(wù)服務(wù)器后,該業(yè)務(wù)服務(wù)器的處理量超過(guò)業(yè)務(wù)服務(wù)器的預(yù)設(shè)值時(shí),將重新選擇業(yè)務(wù)服務(wù)器,再進(jìn)行分配。
[0021]判斷單元1023用于判斷所接收的客戶請(qǐng)求是否已經(jīng)分配完畢,若所接收的客戶請(qǐng)求還未分配完畢時(shí),則繼續(xù)分配客戶請(qǐng)求。
[0022]判斷單元1023還用于判斷分配給所有選擇的業(yè)務(wù)服務(wù)器的客