導航:首頁 > 源碼編譯 > rr調度演算法實現

rr調度演算法實現

發布時間:2024-12-09 21:14:37

❶ 鏈変竴涓鍏鋒湁涓ら亾浣滀笟鐨勬壒澶勭悊緋葷粺錛屼綔涓氳皟搴﹂噰鐢ㄧ煭浣滀笟浼樺厛璋冨害綆楁硶錛岃繘紼嬭皟搴﹂噰鐢ㄤ互浼樺厛鏁頒負鍩虹鐨勬姠鍗犲紡

鏈棰樹腑鐨勭郴緇熸槸涓ら亾浣滀笟緋葷粺錛屽洜姝ゆ瘡嬈″彧鑳芥湁涓や釜浣滀笟榪涘叆緋葷粺錛屼綔涓氳皟搴﹂噰

鐢ㄧ煭浣滀笟浼樺厛綆楁硶錛屽彧鏈夎皟搴﹁繘鍏ョ郴緇熺殑榪涚▼鏂硅兘鍙備笌榪涚▼璋冨害錛涜繘紼嬭皟搴﹂噰鐢

鍩轟簬浼樺厛鏁扮殑鎶㈠崰寮忚皟搴︾畻娉曪紝楂樹紭鍏堢駭鐨勮繘紼嬪彲浠ユ姠鍗犵郴緇熷勭悊鏈恆

鏈棰樼殑浣滀笟鍜岃繘紼嬬殑鎺ㄨ繘榪囩▼濡備笅錛

10錛00 A浣滀笟鍒拌揪錛岃浣滀笟璋冨害紼嬪簭璋冨害榪涘叆緋葷粺錛岃榪涚▼璋冨害紼嬪簭璋冨害寮濮嬭繍琛

10錛20 A浣滀笟榪愯20鍒嗛挓錛屽墿浣20鍒嗛挓錛岀敱浜庝紭鍏堢駭浣庯紝琚榪涚▼璋冨害紼嬪簭璋冨害澶勪簬灝辯華鐘舵

B浣滀笟鍒拌揪錛岃浣滀笟璋冨害紼嬪簭璋冨害榪涘叆緋葷粺錛岀敱浜庝紭鍏堢駭楂橈紝琚榪涚▼璋冨害紼嬪簭璋冨害澶勪簬寮濮嬭繍琛岀姸鎬

10錛30 A浣滀笟絳夊緟10鍒嗛挓錛屽墿浣20鍒嗛挓錛岀戶緇絳夊緟

B浣滀笟榪愯10鍒嗛挓錛屽墿浣20鍒嗛挓錛岀戶緇榪愯

C浣滀笟鍒拌揪錛岀瓑寰呰浣滀笟璋冨害紼嬪簭璋冨害

10錛50 A浣滀笟絳夊緟30鍒嗛挓錛屽墿浣20鍒嗛挓錛岀敱浜庝紭鍏堢駭楂橈紝琚榪涚▼璋冨害紼嬪簭璋冨害澶勪簬寮濮嬭繍琛岀姸鎬

B浣滀笟榪愯30鍒嗛挓錛屼綔涓氬畬鎴愶紝緇撴潫榪愯

C浣滀笟絳夊緟20鍒嗛挓錛岀敱浜庝及璁¤繍琛屾椂闂磋緝闀匡紝浠嶆湭琚璋冨叆緋葷粺涓榪愯

D浣滀笟鍒拌揪錛岃榪涚▼璋冨害紼嬪簭璋冨害澶勪簬灝辯華鐘舵

11錛10 A浣滀笟榪愯40鍒嗛挓錛屼綔涓氬畬鎴愶紝緇撴潫榪愯

C浣滀笟絳夊緟30鍒嗛挓錛岃浣滀笟璋冨害紼嬪簭璋冨害榪涘叆緋葷粺錛岀敱浜庝紭鍏堢駭楂橈紝琚榪涚▼璋冨害紼嬪簭璋冨害澶勪簬寮濮嬭繍琛岀姸鎬

D浣滀笟絳夊緟10鍒嗛挓錛岀敱浜庝紭鍏堢駭浣庯紝琚榪涚▼璋冨害紼嬪簭璋冨害澶勪簬灝辯華鐘舵

12錛00 C浣滀笟榪愯50鍒嗛挓錛屼綔涓氬畬鎴愶紝緇撴潫榪愯

D浣滀笟絳夊緟70鍒嗛挓錛岃榪涚▼璋冨害紼嬪簭璋冨害澶勪簬寮濮嬭繍琛岀姸鎬

12錛20 D浣滀笟榪愯20鍒嗛挓錛屼綔涓氬畬鎴愶紝緇撴潫榪愯

鍚勪綔涓氬懆杞鏃墮棿涓猴細

浣滀笟A 70錛屼綔涓欱 30錛屼綔涓欳 90錛屼綔涓欴 90銆

騫沖潎浣滀笟鍛ㄨ漿鏃墮棿涓70鍒嗛挓銆

鍙傝1.緗戦〉閾炬帴

2.緗戦〉閾炬帴

鐣ユ敼鍔ㄣ

❷ 多台異地伺服器如何實現負載均衡

一般用的就用簡單的輪詢就好了
調度演算法
靜態方法:僅根據演算法本身實現調度;實現起點公平,不管伺服器當前處理多少請求,分配的數量一致
動態方法:根據演算法及後端RS當前的負載狀況實現調度;不管以前分了多少,只看分配的結果是不是公平
靜態調度演算法(static Sche)(4種):
(1)rr (Round Robin) :輪叫,輪詢
說明:輪詢調度演算法的原理是每一次把來自用戶的請求輪流分配給內部中的伺服器,從1開始,直到N(內部伺服器個數),然後重新開始循環。演算法的優點是其簡潔性,它無需記錄當前所有連接的狀態,所以它是一種無狀態調度。缺點:是不考慮每台伺服器的處理能力。
(2)wrr (Weight Round Robin) :加權輪詢(以權重之間的比例實現在各主機之間進行調度)
說明:由於每台伺服器的配置、安裝的業務應用等不同,其處理能力會不一樣。所以,我們根據伺服器的不同處理能力,給每個伺服器分配不同的權值,使其能夠接受相應權值數的服務請求。
(3)sh (Source Hashing) : 源地址hash實現會話綁定sessionaffinity
說明:簡單的說就是有將同一客戶端的請求發給同一個real server,源地址散列調度演算法正好與目標地址散列調度演算法相反,它根據請求的源IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的伺服器,若該伺服器是可用的並且沒有超負荷,將請求發送到該伺服器,否則返回空。它採用的散列函數與目標地址散列調度演算法的相同。它的演算法流程與目標地址散列調度演算法的基本相似,除了將請求的目標IP地址換成請求的源IP地址。
(4)dh : (Destination Hashing) : 目標地址hash
說明:將同樣的請求發送給同一個server,一般用於緩存伺服器,簡單的說,LB集群後面又加了一層,在LB與realserver之間加了一層緩存伺服器,當一個客戶端請求一個頁面時,LB發給cache1,當第二個客戶端請求同樣的頁面時,LB還是發給cache1,這就是我們所說的,將同樣的請求發給同一個server,來提高緩存的命中率。目標地址散列調度演算法也是針對目標IP地址的負載均衡,它是一種靜態映射演算法,通過一個散列(Hash)函數將一個目標IP地址映射到一台伺服器。目標地址散列調度演算法先根據請求的目標IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的伺服器,若該伺服器是可用的且未超載,將請求發送到該伺服器,否則返回空。
動態調度演算法(dynamic Sche)(6種):
(1)lc (Least-Connection Scheling): 最少連接
說明:最少連接調度演算法是把新的連接請求分配到當前連接數最小的伺服器,最小連接調度是一種動態調度短演算法,它通過伺服器當前所活躍的連接數來估計伺服器的負載均衡,調度器需要記錄各個伺服器已建立連接的數目,當一個請求被調度到某台伺服器,其連接數加1,當連接中止或超時,其連接數減一,在系統實現時,我們也引入當伺服器的權值為0時,表示該伺服器不可用而不被調度。此演算法忽略了伺服器的性能問題,有的伺服器性能好,有的伺服器性能差,通過加權重來區分性能,所以有了下面演算法wlc。
簡單演算法:active*256+inactive (誰的小,挑誰)
(2)wlc (Weighted Least-Connection Scheling):加權最少連接
加權最小連接調度演算法是最小連接調度的超集,各個伺服器用相應的權值表示其處理性能。伺服器的預設權值為1,系統管理員可以動態地設置伺服器的許可權,加權最小連接調度在調度新連接時盡可能使伺服器的已建立連接數和其權值成比例。由於伺服器的性能不同,我們給性能相對好的伺服器,加大權重,即會接收到更多的請求。
簡單演算法:(active*256+inactive)/weight(誰的小,挑誰)
(3)sed (shortest expected delay scheling):最少期望延遲
說明:不考慮非活動連接,誰的權重大,我們優先選擇權重大的伺服器來接收請求,但會出現問題,就是權重比較大的伺服器會很忙,但權重相對較小的伺服器很閑,甚至會接收不到請求,所以便有了下面的演算法nq。
基於wlc演算法,簡單演算法:(active+1)*256/weight (誰的小選誰)
(4).nq (Never Queue Scheling): 永不排隊
說明:在上面我們說明了,由於某台伺服器的權重較小,比較空閑,甚至接收不到請求,而權重大的伺服器會很忙,所此演算法是sed改進,就是說不管你的權重多大都會被分配到請求。簡單說,無需隊列,如果有台real server的連接數為0就直接分配過去,不需要在進行sed運算。
(5).LBLC(Locality-Based Least Connections) :基於局部性的最少連接
說明:基於局部性的最少連接演算法是針對請求報文的目標IP地址的負載均衡調度,主要用於Cache集群系統,因為Cache集群中客戶請求報文的目標IP地址是變化的,這里假設任何後端伺服器都可以處理任何請求,演算法的設計目標在伺服器的負載基本平衡的情況下,將相同的目標IP地址的請求調度到同一個台伺服器,來提高伺服器的訪問局部性和主存Cache命中率,從而調整整個集群系統的處理能力。
(6).LBLCR(Locality-Based Least Connections with Replication) :基於局部性的帶復制功能的最少連接
說明:基於局部性的帶復制功能的最少連接調度演算法也是針對目標IP地址的負載均衡,該演算法根據請求的目標IP地址找出該目標IP地 址對應的伺服器組,按「最小連接」原則從伺服器組中選出一台伺服器,若伺服器沒有超載,將請求發送到該伺服器;若伺服器超載,則按「最小連接」原則從這個集群中選出一台伺服器,將該伺服器加入到伺服器組中,將請求發送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,將最忙的伺服器從伺服器組中刪除, 以降低復制的程度。

閱讀全文

與rr調度演算法實現相關的資料

熱點內容
精品php源碼 瀏覽:960
自己編寫雲伺服器搶紅包 瀏覽:203
java解壓縮文件加密 瀏覽:887
dlink列印伺服器默認地址 瀏覽:353
php休眠函數 瀏覽:372
金蝶如何打開伺服器 瀏覽:766
e4a手游輔助源碼 瀏覽:777
什麼app可以實時直播 瀏覽:106
蘋果13的app閃退什麼原因 瀏覽:775
尾盤選股源碼公式 瀏覽:450
php日期運算 瀏覽:931
天龍八部長歌伺服器什麼時候開的 瀏覽:199
鬼泣4模型在那個文件夾 瀏覽:229
單片機的串列口 瀏覽:58
phpjson轉化為數組 瀏覽:268
pdf導入excel 瀏覽:428
蘋果xsmax信任app在哪裡設置 瀏覽:53
自動外鏈php源碼 瀏覽:245
我的世界新手獎勵箱命令 瀏覽:146
linux更新vim 瀏覽:998