日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Citrix Netscaler负载均衡算法

發(fā)布時(shí)間:2025/3/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Citrix Netscaler负载均衡算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Citrix Netscaler負(fù)載均衡算法

http://blog.51cto.com/caojin/1926308

?

眾所周知,作為新一代應(yīng)用交付產(chǎn)品的Citrix Netscaler具有業(yè)內(nèi)領(lǐng)先的數(shù)據(jù)控制、應(yīng)用交付的能力,然而作為根本內(nèi)容之一的ADC功能,如果不具備強(qiáng)大的、多元化的均衡算法是不可能適應(yīng)如此眾多的應(yīng)用場景,更無法做到好的應(yīng)用交付產(chǎn)品。因此我們在此討論一下比較常用的負(fù)載均衡算法就很有必要。

目前最新版本的Netscaler支持17種均衡算法,目前先討論最常用的12種

1、輪詢算法(Round Robin)

當(dāng)NetScaler?使用輪詢的負(fù)載均衡算法時(shí),它會(huì)將來自客戶端的請求輪流分配給后臺(tái)中的服務(wù)器,從1開始,直到N(后臺(tái)服務(wù)器個(gè)數(shù)),然后重新開始循環(huán)。

如果考慮后臺(tái)服務(wù)器的處理能力不同,可以給每個(gè)服務(wù)器分配不同的權(quán)值,通過設(shè)置權(quán)重比率來調(diào)整循環(huán)調(diào)度的機(jī)率。

2、最少連接算法(Least Connection)

當(dāng)NetScaler?使用最小連接的負(fù)載均衡算法時(shí),它是把新的連接請求分配到當(dāng)前連接數(shù)最小的服務(wù)器。最小連接算法是一種動(dòng)態(tài)調(diào)度算法,它通過服務(wù)器當(dāng)前所活躍的連接數(shù)來估計(jì)服務(wù)器的負(fù)載情況。系統(tǒng)會(huì)記錄各個(gè)服務(wù)器已建立連接的數(shù)目,當(dāng)一個(gè)請求被調(diào)度到某臺(tái)服務(wù)器時(shí),其連接數(shù)加1,當(dāng)連接中止,其連接數(shù)減一。

如果考慮后臺(tái)服務(wù)器的處理能力不同,也可以給每個(gè)服務(wù)器分配不同的權(quán)值,通過設(shè)置權(quán)重比率來調(diào)整最小連接算法的調(diào)度機(jī)率。

3、最少響應(yīng)時(shí)間

當(dāng)NetScaler?使用最小響應(yīng)時(shí)間的負(fù)載均衡算法時(shí),它是把新的連接請求分配到當(dāng)前連接數(shù)最小并且平均響應(yīng)時(shí)間最小的服務(wù)器。最小響應(yīng)時(shí)間算法的調(diào)度因素實(shí)際上有兩個(gè)部分組成,即當(dāng)前每服務(wù)器上的最小連接數(shù)和每服務(wù)器的平均響應(yīng)時(shí)間(這里的平均響應(yīng)時(shí)間為TTFB,即第一個(gè)字節(jié)到達(dá)的時(shí)間,對于Http協(xié)議為response code為200的第一個(gè)字節(jié)數(shù)據(jù)返回的時(shí)間),這兩個(gè)因子的乘積做為算法調(diào)度的判斷依據(jù)。最新的連接請求將被發(fā)送到最小連接數(shù)和平均響應(yīng)時(shí)間乘積最小的服務(wù)器。

如果考慮后臺(tái)服務(wù)器的處理能力不同,也可以給每個(gè)服務(wù)器分配不同的權(quán)值,通過設(shè)置權(quán)重比率來調(diào)整最小享用時(shí)間算法的調(diào)度機(jī)率。

4、最小帶寬算法(Least Bandwidth)

當(dāng)NetScaler?使用最小帶寬的負(fù)載均衡算法時(shí),它是把新的連接請求分配到當(dāng)前流量吞吐(單位為bps)最小的服務(wù)器。

如果考慮后臺(tái)服務(wù)器的處理能力不同,也可以給每個(gè)服務(wù)器分配不同的權(quán)值,通過設(shè)置權(quán)重比率來調(diào)整最小帶寬算法的調(diào)度機(jī)率。

5、最少數(shù)據(jù)包算法(Least Packets)

當(dāng)NetScaler?使用最少數(shù)據(jù)包的負(fù)載均衡算法時(shí),它是把新的連接請求分配到數(shù)據(jù)包最少的服務(wù)器。計(jì)算最小數(shù)據(jù)包的方法是過去14秒每個(gè)服務(wù)器上處理的數(shù)據(jù)包數(shù)量。

如果考慮后臺(tái)服務(wù)器的處理能力不同,也可以給每個(gè)服務(wù)器分配不同的權(quán)值,通過設(shè)置權(quán)重比率來調(diào)整最少數(shù)據(jù)包算法的調(diào)度機(jī)率。

6、令牌算法(Token)

當(dāng)NetScaler?使用令牌負(fù)載均衡算法時(shí),它分發(fā)新的連接請求將依據(jù)客戶端請求中所附帶的令牌(Token)信息,具備相同令牌的請求將會(huì)分配到相同的后臺(tái)服務(wù)器。令牌算法是一種基于內(nèi)容信息的調(diào)度算法,NetScaler可設(shè)置令牌(Token)所在的位置和尺寸,這樣通過搜索到相同的令牌,而將請求發(fā)往相同的后臺(tái)服務(wù)器。

令牌算法可以應(yīng)用到TCP、http和Https服務(wù)類型,甚至可以實(shí)現(xiàn)不同的服務(wù)之間的唯一性。對于Http/Https協(xié)議,令牌(Token)可以在Http header或URL或Http body中取得。Netscaler可以在TCP Payload前最多24K字節(jié)中搜索配置的Token,如果是非Http服務(wù),Netscaler可以在最多前16個(gè)數(shù)據(jù)包中中搜索配置的令牌(Token),但不能超過24K字節(jié)。

7、URL Hash算法

URL散列(Hash)負(fù)載均衡算法常用于緩存(Cache)環(huán)境,當(dāng)NetScaler?使用URL散列(Hash)負(fù)載均衡算法時(shí),NetScaler通過一個(gè)散列(Hash)函數(shù)將此連接請求的URL信息進(jìn)行計(jì)算并將計(jì)算值緩存在系統(tǒng)中,同時(shí)映射到后臺(tái)某個(gè)服務(wù)器。隨后基于URL信息做為散列鍵(Hash Key)進(jìn)行Hash計(jì)算得到相同值的請求,均發(fā)送到這個(gè)后臺(tái)服務(wù)器。

8、域名?Hash算法

當(dāng)NetScaler?使用域名散列(Hash)負(fù)載均衡算法時(shí),NetScaler通過一個(gè)散列(Hash)函數(shù)將此連接請求的域名(Domain)信息進(jìn)行計(jì)算并將計(jì)算值緩存在系統(tǒng)中,同時(shí)映射到后臺(tái)某個(gè)服務(wù)器。隨后基于域名信息做為散列鍵(Hash Key)進(jìn)行Hash計(jì)算得到相同值的請求,均發(fā)送到這個(gè)后臺(tái)服務(wù)器。

9、源IP地址?Hash算法

當(dāng)NetScaler?使用源IP地址散列(Hash)負(fù)載均衡算法時(shí),NetScaler通過一個(gè)散列(Hash)函數(shù)將此連接請求的源IP地址信息進(jìn)行計(jì)算并將計(jì)算值緩存在系統(tǒng)中,同時(shí)映射到后臺(tái)某個(gè)服務(wù)器。隨后基于源IP地址做為散列鍵(Hash Key)進(jìn)行Hash計(jì)算得到相同值的請求,均發(fā)送到這個(gè)后臺(tái)服務(wù)器。

10、目的IP地址Hash算法

當(dāng)NetScaler?使用目的IP地址散列(Hash)負(fù)載均衡算法時(shí),NetScaler通過一個(gè)散列(Hash)函數(shù)將此連接請求的目的IP地址信息進(jìn)行計(jì)算并將計(jì)算值緩存在系統(tǒng)中,同時(shí)映射到后臺(tái)某個(gè)服務(wù)器。隨后基于目的IP地址做為散列鍵(Hash Key)進(jìn)行Hash計(jì)算得到相同值的請求,均發(fā)送到這個(gè)后臺(tái)服務(wù)器。

11、源IP和目的IP地址?hash算法

當(dāng)NetScaler?使用源IP和目的IP地址散列(Hash)負(fù)載均衡算法時(shí),NetScaler通過一個(gè)散列(Hash)函數(shù)將此連接請求的源IP地址和目的IP地址信息進(jìn)行計(jì)算并將計(jì)算值緩存在系統(tǒng)中,同時(shí)映射到后臺(tái)某個(gè)服務(wù)器。隨后基于源IP地址和目的IP地址做為散列鍵(Hash Key)進(jìn)行Hash計(jì)算得到相同值的請求,均發(fā)送到這個(gè)后臺(tái)服務(wù)器。

源IP地址和目的IP地址散列(Hash)算法常應(yīng)用在防火墻集群負(fù)載均衡環(huán)境中,它們可以保證流量出入的唯一性。

12、自定義的基于SNMP的判斷算法(Custom Load)

當(dāng)NetScaler?使用自定義負(fù)載均衡算法時(shí),NetScaler按照自定義策略通過SNMP協(xié)議獲取相關(guān)服務(wù)器運(yùn)行參數(shù),例如CPU利用率、內(nèi)存使用、服務(wù)器連接和響應(yīng)時(shí)間等多種信息,最終通過預(yù)先策略設(shè)定的參數(shù)矩陣(metric)來決定新的連接請求發(fā)送給哪一臺(tái)后臺(tái)服務(wù)器。

??也許有人會(huì)問怎么Netscaler不支持加權(quán)算法?在其他ADC里面加權(quán)會(huì)作為一種單獨(dú)的算法出現(xiàn),也就只能支持一兩種而已。但是在Netscaler,加權(quán)是在service的設(shè)定,會(huì)和其他已有的算法結(jié)合,從某種程度上講就變成更多的算法,也就變成了12+12加權(quán)=24種均衡算法。下面僅以最小連接的加權(quán)來討論

最小連接數(shù)

當(dāng)NetScaler?使用最小連接的負(fù)載均衡算法時(shí),它是把新的連接請求分配到當(dāng)前連接數(shù)最小的服務(wù)器。最小連接算法是一種動(dòng)態(tài)調(diào)度算法,它通過服務(wù)器當(dāng)前所活躍的連接數(shù)來估計(jì)服務(wù)器的負(fù)載情況。系統(tǒng)會(huì)記錄各個(gè)服務(wù)器已建立連接的數(shù)目,當(dāng)一個(gè)請求被調(diào)度到某臺(tái)服務(wù)器時(shí),其連接數(shù)加1,當(dāng)連接中止,其連接數(shù)減一。

如果考慮后臺(tái)服務(wù)器的處理能力不同,也可以給每個(gè)服務(wù)器分配不同的權(quán)值,通過設(shè)置權(quán)重比率來調(diào)整最小連接算法的調(diào)度機(jī)率。

無權(quán)重參與

?

service1權(quán)重=4

?

servcie2權(quán)重=2

?
???

NW=當(dāng)前連接數(shù)*(10000/權(quán)重)

service1NW=連接數(shù)*2500

service2NW=連接數(shù)*5000

加入權(quán)重后請求的分配情況

 請求數(shù)

service1 NW

service2 NW

當(dāng)前NW

0

0

0

0

1

2500

0

2500

2

2500

5000

5000

3

5000

5000

10000

4

5000

10000

12500

5

7500

10000

17500

6

10000

10000

20000

7

10000

15000

22500

8

12500

15000

27500

9

15000

15000

30000

10

15000

20000

32500

11

17500

20000

37500

12

20000

20000

40000

13

20000

25000

42500

14

22500

25000

45000

15

25000

25000

47500

16

25000

30000

50000

17

27500

30000

55000

18

30000

30000

57500

19

30000

35000

60000

注釋:

當(dāng)service的NW相同的時(shí)候遵循輪詢算法,這也是導(dǎo)致在第一個(gè)周期與權(quán)重比例有所不同的原因所在。

當(dāng)前NW的計(jì)算方法:NW=當(dāng)前連接數(shù)*(10000/權(quán)重)但在計(jì)算系統(tǒng)當(dāng)前NW(不是service的NW)時(shí)會(huì)利用上次索取Service的權(quán)重來進(jìn)行計(jì)算。例如請求3-》4,由于請求3落在service1,servcie1的權(quán)重是4(10000/4=2500)那么在計(jì)算第4個(gè)請求的NW就用上次NW+10000/權(quán)重=12500。在4-》5的時(shí)候由于上次落在了service2上,那計(jì)算第5個(gè)請求的NW就用上次NW+10000/權(quán)重(用servcie2的權(quán)重)=17500。

?

為了明確看出權(quán)重的影響,下表以1:5的權(quán)重來體現(xiàn)

service1權(quán)重=5

?

servcie2權(quán)重=1

?
???

NW=當(dāng)前連接數(shù)*(10000/權(quán)重)

service1NW=連接數(shù)*2000

service2NW=連接數(shù)*10000

?

請求數(shù)

service1 NW

service2 NW

當(dāng)前NW

0

0

0

0

1

2000

0

2000

2

2000

10000

4000

3

4000

10000

14000

4

6000

10000

16000

5

8000

10000

18000

6

10000

10000

20000

7

10000

20000

22000

8

12000

20000

32000

9

14000

20000

34000

10

16000

20000

36000

11

18000

20000

38000

12

20000

20000

40000

13

20000

30000

42000

14

22000

30000

52000

15

24000

30000

54000

16

26000

30000

56000

17

28000

30000

58000

18

30000

30000

60000

19

32000

30000

62000

?

?

總結(jié)

以上是生活随笔為你收集整理的Citrix Netscaler负载均衡算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。