在電子商務(wù)發(fā)展迅速的今天,網(wǎng)絡(luò)的運(yùn)行狀態(tài),是電子商務(wù)能否順利進(jìn)行的有力保障,現(xiàn)有網(wǎng)絡(luò)資源的利用率高低就一個(gè)重要問(wèn)題,網(wǎng)絡(luò)的負(fù)載平衡就是解決這個(gè)問(wèn)題的方法之一,下面對(duì)幾種常見(jiàn)的負(fù)載平衡方法,進(jìn)行分析比較
一、靜態(tài)均衡算法
靜態(tài)的負(fù)載平衡是指當(dāng)一個(gè)請(qǐng)求到來(lái)時(shí),將按照預(yù)先約定的匹配規(guī)則將該請(qǐng)求指派到一個(gè)特定的真實(shí)服務(wù)器。靜態(tài)負(fù)載平衡算法主要任務(wù)是決定如何選擇下一個(gè)節(jié)點(diǎn),然后將新的服務(wù)請(qǐng)求轉(zhuǎn)發(fā)給它?,F(xiàn)在,針對(duì)不同的網(wǎng)絡(luò)服務(wù)需求和配置已經(jīng)有相當(dāng)多的研究和應(yīng)用,比較普遍的算法是:輪詢 (Round Robin),散列(Source Hashing)等等。一個(gè)好的靜態(tài)負(fù)載均衡算法也并不是萬(wàn)能的,它一般只在某些特殊的應(yīng)用環(huán)境下才能發(fā)揮最大效用,靜態(tài)負(fù)載平衡也是實(shí)現(xiàn)動(dòng)態(tài)負(fù)載平衡的基礎(chǔ)
輪詢調(diào)度 (Round Robin Scheduling)算法就是以輪詢的方式依次將請(qǐng)求調(diào)度不同的服務(wù)器,即每次調(diào)度執(zhí)行i二(Q+l)mod n,選出第‘臺(tái)服務(wù)器。這種算法的優(yōu)點(diǎn)是簡(jiǎn)潔明確,無(wú)需記錄當(dāng)前連接的狀態(tài)。
散列法通過(guò)單向的不可逆的哈希 (Hash)函數(shù)將請(qǐng)求發(fā)往集群節(jié)點(diǎn)。目標(biāo)地址散列調(diào)度 (Destination Hashing Scheduling)算法先根據(jù)請(qǐng)求的目標(biāo)IP地址,作為散列鍵 (Hash Key)從靜態(tài)的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器可用并且未超載,則將請(qǐng)求發(fā)送到該服務(wù)器。源地址散列調(diào)度 (Source HashingScheduling)則是將請(qǐng)求的源IP地址作為散列鍵從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器。
二、 動(dòng)態(tài)均衡算法
在實(shí)際的訪問(wèn)過(guò)程中,很有可能存在這樣情況,即有些節(jié)點(diǎn)已經(jīng)超負(fù)荷運(yùn)行,而其他節(jié)點(diǎn)基本上處于空閑狀態(tài);或者有些節(jié)點(diǎn)的處理任務(wù)已經(jīng)很繁忙,但還有很長(zhǎng)的請(qǐng)求隊(duì)列,同時(shí)又不斷地收到新的請(qǐng)求。這些情況都會(huì)導(dǎo)致客戶端長(zhǎng)時(shí)間的等待,使集群的整體服務(wù)質(zhì)量下降。因此,有必要采用一種機(jī)制,使得平衡器能夠?qū)崟r(shí)地了解各個(gè)節(jié)點(diǎn)的負(fù)載狀況,并根據(jù)負(fù)載的變化做出相應(yīng)調(diào)整。
動(dòng)態(tài)的負(fù)載平衡算法是根據(jù)系統(tǒng)當(dāng)前的負(fù)載狀況來(lái)調(diào)整任務(wù)劃分。這類算法能及時(shí)、準(zhǔn)確的把握各個(gè)節(jié)點(diǎn)的負(fù)載狀況,并根據(jù)各個(gè)節(jié)點(diǎn)的資源使用狀況來(lái)動(dòng)態(tài)調(diào)整負(fù)載的分布。動(dòng)態(tài)均衡算法將考慮每一個(gè)節(jié)點(diǎn)的實(shí)時(shí)負(fù)載和響應(yīng)能力,不斷調(diào)整任務(wù)分布的比例,避免有些節(jié)點(diǎn)超載時(shí)依然收到大量請(qǐng)求,從而提高集群的整體吞吐率。
最小連接調(diào)度(Least-Connection Scheduling)算法是一種典型的動(dòng)態(tài)調(diào)度算法,它通過(guò)記錄服務(wù)器當(dāng)前活躍的連接數(shù)來(lái)估計(jì)服務(wù)器的負(fù)載情況,該算法把新的連接請(qǐng)求分配到當(dāng)前含有最少連接數(shù)的節(jié)點(diǎn)。平衡器記錄集群內(nèi)各個(gè)服務(wù)器已建立連接的數(shù)目,當(dāng)一個(gè)請(qǐng)求被調(diào)度到某臺(tái)服務(wù)器后,該服務(wù)器連接數(shù)加1;當(dāng)連接超時(shí)或訪問(wèn)結(jié)束后,其連接數(shù)減1。通常這種算法針對(duì)TCP連接進(jìn)行,但由于不同應(yīng)用對(duì)系統(tǒng)資源的消耗可能差異很大,而連接數(shù)量無(wú)法反映出真實(shí)的應(yīng)用負(fù)載,因此在大規(guī)模應(yīng)用時(shí),該算法在效果上要打折扣。為了減少這個(gè)不利的影響,可對(duì)每個(gè)節(jié)點(diǎn)設(shè)置最大的連接數(shù)上限。
加權(quán)輪詢調(diào)度 (Weighted Round-Robin Scheduling)算法用權(quán)值表示相應(yīng)節(jié)點(diǎn)的處理性能。該算法根據(jù)權(quán)值的高低順序并按照輪詢的方式將任務(wù)請(qǐng)求分配到各節(jié)點(diǎn)。權(quán)值高的節(jié)點(diǎn)比權(quán)值低的節(jié)點(diǎn)處理更多的任務(wù)請(qǐng)求,相同權(quán)值的節(jié)點(diǎn)處理相同份額的請(qǐng)求。在IPVS (IP Virtual Server Software)調(diào)度器的內(nèi)核中,開發(fā)人員對(duì)加權(quán)輪詢調(diào)度算法進(jìn)行了拓展和改進(jìn),在此基礎(chǔ)上形成了基于動(dòng)態(tài)反饋負(fù)載均衡機(jī)制。該策略能避免長(zhǎng)事務(wù)的請(qǐng)求總被分配到某些固定的機(jī)器上,使集群內(nèi)各服務(wù)器保持較好的利用率。
三、 其他均衡算法
由于全局狀態(tài)的不確定性,實(shí)際上很難對(duì)負(fù)載均衡網(wǎng)絡(luò)中的各種行為特征做出精確的數(shù)學(xué)建模,也就是說(shuō)很難確切地給出下一個(gè)負(fù)載應(yīng)該分配給哪一個(gè)服務(wù)器,才能使整個(gè)集群的負(fù)載趨于平衡。出于這種考慮,有人將模糊控制的理論應(yīng)用到均衡算法中,采用模糊邏輯根據(jù)各個(gè)服務(wù)器的歷史信息來(lái)估計(jì)其負(fù)載的高低。每臺(tái)服務(wù)器都會(huì)將這些并不精確的信息送入一個(gè)邏輯推斷引擎,引擎經(jīng)過(guò)分析后會(huì)給出服務(wù)器的負(fù)載高低的排序,對(duì)于新到來(lái)的請(qǐng)求的派發(fā)就是基于這個(gè)排序的。對(duì)比隨機(jī)策略 (Random Scheduling)和輪詢策略( Round RobinScheduling),該系統(tǒng)取得了很好的實(shí)驗(yàn)結(jié)果。
還有一種將力學(xué)模型應(yīng)用到負(fù)載平衡算法中的新思路。通過(guò)模擬在斜面上具有一定質(zhì)量的小球的下落過(guò)程,并對(duì)這個(gè)過(guò)程的物理意義進(jìn)行分析,找到選擇最優(yōu)服務(wù)器的途徑,也取得了令人滿意的實(shí)驗(yàn)結(jié)果。
綜上所述,在電子商務(wù)和其他的商業(yè)IT活動(dòng)中選擇一種適宜負(fù)載平衡方式,已經(jīng)成為服務(wù)質(zhì)量能否得到保障關(guān)鍵問(wèn)題,要根據(jù)實(shí)際網(wǎng)絡(luò)情況進(jìn)行選擇。
參考文獻(xiàn):
[1]范國(guó)闖等:Web應(yīng)用服務(wù)器自適應(yīng)負(fù)載平衡
[2]P.Enjeti etal.Analysis of a Static Power Converter Underunbalance A Novel Approach.IEEE Trans.on Industrial Electronics,1990
[3]P.Enjeti,S.Kim.A New DC side Active Filter for InverterPower Supplies Compensates for Unbalanced And Nonlinear Loads.IEEE,1991