⑴ 國內應用負載均衡比較成熟的技術有哪些
一、應用負載均衡技術:
1)輪循調度(Round-Robin) 它將請求依次分配不同的RS,也就是在RS中均攤請求。這種演算法簡單,但是只適合於伺服器處理性能相差不大的情況。
2)加權輪循調度(Weighted Round-Robin) 它將依據不同伺服器的權值分配任務。權值較高的伺服器將優先獲得任務,並且分配到的連接數將比權值較低的伺服器更多。相同權值的伺服器得到相同數目的連接數。
3)目的地址哈希調度 (Destination Hashing) 以目的地址為關鍵字查找一個靜態hash表來獲得需要的伺服器。
4)源地址哈希調度(Source Hashing) 以源地址為關鍵字查找一個靜態hash表來獲得需要的伺服器。
5)最小連接數調度(Least-Connection),把新的連接請求發送到當前連接數最小的伺服器。
6)加權最小連接數調度(Weighted Least-Connection) 假設各台伺服器的權值依次為Wi(I = 1..n),當前的TCP連接數依次為Ti(I=1..n),依次選取Ti/Wi為最小的伺服器作為下一個分配的伺服器。
7)基於地址的最小連接數調度(Locality-Based Least-Connection) 當上一次分配的伺服器不忙(此時權重就是最大連接數)時,將當前來自同一目的地址的請求分配給同一台伺服器,否則採用加權最小連接數調度演算法分配伺服器,並以它為下一次分配的首先考慮。
8)基於地址的帶重復最小連接數調度(Locality-Based Least-Connection with Replication) 對於某一目的地址,對應有一個伺服器子集。對此地址的請求,為它分配子集中連接數最小的伺服器;如果子集中所有的伺服器均已滿負荷,則從集群中選擇一個連接數較小的伺服器,將它加入到此子集並分配連接;若一定時間內,這個子集未被做任何修改,則將子集中負載最大的節點從子集刪除。
9)最短預期延遲調度(Shortest Expected Delay Scheling)(最短延遲調度) 將網路連接分配給具有最短預期延遲的伺服器。
計算方式:當前每台伺服器的當前連接數Ci,權重為Wi,取(Ci+1)/Wi最小的伺服器
10)不排隊調度(Never Queue Scheling)(最快調度)當集群中有一台伺服器空閑時,就將當前的請求發送給此伺服器;否則採用演算法9)最短預期延遲演算法。
二、鏈路負載均衡技術:
採用包括策略路由(基於源地址或者目的地址)、Round Robin(輪詢)、Weighted Round Robin(加權輪詢)、擁塞均衡、備份均衡等演算法,充分滿足用戶差異化需求,最佳利用網路現有帶寬資源,實現流出與流入(Inbound & Outbound)流量的多鏈路負載均衡,為用戶建立最佳質量最佳服務的網路環境。
1)流出流量的負載均衡。對於流出流量進行智能的管理,實現多鏈路下的流出流量均衡,還可以按企業特定的策略選擇出站鏈路,提高鏈路利用率,節約企業對通信鏈路的投資。
目的地址策略路由:根據目的IP地址智能選擇流出路徑,即當目的地址處於某一個ISP的IP地址范圍內時,自動選擇此ISP提供的鏈路。
Round Robin(輪詢)演算法:按照順序選擇多個鏈路出口作為每個數據流的流出路徑
Weighted Round Robin(加權輪詢演算法):為每條鏈路設置一個權重值,按照權重順序選擇多個鏈路出口作為每個數據流的流出路徑。在多條不同帶寬的鏈路上,設置不同的權重,可以保證每條鏈路利用的均衡。
擁塞均衡演算法:可以為每條鏈路設置擁塞閾值,當鏈路利用率超過閾值時,可以選擇其它利用率較低的鏈路。
備份均衡演算法:當兩條或多條鏈路屬於同一運營商時,可以將某一條鏈路設置為備份鏈路,備份鏈路在主鏈路沒有擁塞時,一直處於閑置狀態,當主鏈路擁塞後,流量才會進入備份鏈路。
2)流入流量負載均衡。採用智能DNS均衡演算法實現企業入站流量在不同ISP鏈路上的流量均衡。
源地址策略路由:根據源IP所處的ISP,來進行智能DNS解析,返回屬於此ISP的IP地址。
Round Robin演算法:順序將多個ISP的地址作為每次用戶解析請求的返回地址。
Weighted Round Robin演算法:為每個ISP提供的鏈路設置權重值,按照權重值順序選擇多個ISP的IP地址返回。
擁塞均衡演算法:為每條鏈路設置擁塞閾值,當鏈路利用率超過閾值時,返回利用率較低的鏈路對應的ISP的IP地址。
⑵ 軟體架構中,負載均衡有哪些調度演算法
謝邀!
負載均衡調度演算法也叫負載均衡方法有很多種,下面以使用比較廣的nginx為例說說軟體負載均衡的調度演算法:
nginx默認的調度演算法,按照時間順序逐一分配後台伺服器
在server後加weigth,weight值越高,後台伺服器分配概率越大,下圖是說ip為102的後台服務分配概率是ip為101後台服務的兩倍
按照訪問ip的hash分配,增加ip_hash關鍵字,同一ip訪問相同的後台服務
按照訪問url的hash分配,增加url_hash關鍵字,同一url訪問相同的後台服務
按照最少連接數方式分配,增加least_conn關鍵字,哪個後台服務連接數少就分配哪個
按照最短響應時間分配,增加fair關鍵字,響應時間短的後台服務優先分配
⑶ 負載均衡權重輪詢演算法中的權重有什麼作用
不理解你說的權重是什麼,優先順序還是比率?
如果你有兩台伺服器,伺服器A和伺服器B
優先順序:伺服器A優先順序100,伺服器B優先順序50
流量全部分發到伺服器A上面,只有伺服器A掛掉才會分到B上面,類似於主備。
比率:伺服器A為3,服務B為1
如果一共有12個連接,伺服器A會分發到3+3+3 伺服器B會分發到1+1+1
也就是每4個連接中會有3個分發到伺服器A,剩下的1個分發到伺服器B。
⑷ 實現負載均衡的幾種方式
負載均衡的基本概念 負載均衡是指,將請求分發到 多台 應用伺服器,以此來分散 壓力的一種架構方式,他是以集群的方式存在,並且當 某個節點掛掉的時候,可以自動 不再將請求分配到此節點。
2.
實現方式 1. 重定向 這種方式,是通過將請求全部發送到前置機,由前置機通過演算法 得出要分配給那台 應用伺服器,...
3.
負載均衡演算法 1. 輪詢法 將請求按順序輪流地分配到後端伺服器上,它均衡地對待後
⑸ 伺服器做負載均衡有什麼優勢怎麼計算的
西部數碼負載均衡EasySLB服務,即在多台雲主機間實現應用程序流量的自動分配。可實現故障自動切換,提高業務可用性,並提高資源利用率。
西部數碼負載均衡只需要在控制台一鍵即可添加後端伺服器,系統將自動設置好相關路由與網關,讓負載均衡集群的搭建變得輕而易舉
⑹ bbo有哪些負載均衡演算法怎麼實現的負載均衡演算法bbo有幾層
常見的有LVS、Nginx和HAProxy,者者介紹分別如下:
LVS:使用集群技術和Linux操作系統實現一個高性能、高可用的伺服器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感謝章文嵩博士為我們提供如此強大實用的開源軟體。
LVS的特點是:
1、抗負載能力強、是工作在網路4層之上僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟體里的性能最強的;
2、配置性比較低,這是一個缺點也是一個優點,因為沒有可太多配置的東西,所以並不需要太多接觸,大大減少了人為出錯的幾率;
3、工作穩定,自身有完整的雙機熱備方案;
4、無流量,保證了均衡器IO的性能不會收到大流量的影響;
5、應用范圍比較廣,可以對所有應用做負載均衡;
6、軟體本身不支持正則處理,不能做動靜分離。
Nginx的特點是:
1、工作在網路的7層之上,可以針對http應用做一些分流的策略;
2、Nginx對網路的依賴非常小;
3、Nginx安裝和配置比較簡單,測試起來比較方便;
4、可以承擔高的負載壓力且穩定,一般能支撐超過幾萬次的並發量;
5、Nginx可以通過埠檢測到伺服器內部的故障,比如根據伺服器處理網頁返回的狀態碼、超時等等;
6、Nginx僅能支持http和Email;
HAProxy的特點是:
1、HAProxy是支持虛擬主機的;
2、能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作;
3、支持url檢測後端的伺服器出問題的檢測會有很好的幫助;
4、它跟LVS一樣,本身僅僅就只是一款負載均衡軟體;
5、HAProxy可以對Mysql讀進行負載均衡,對後端的MySQL節點進行檢測和負載均衡,不過在後端的MySQL slaves數量超過10台時性能不如LVS;
6、HAProxy的演算法多;
⑺ 計算機的負載均衡演算法
計算機的負載均衡演算法主要有以下幾種:
1、靜態負載均衡演算法包括:輪詢,比率,優先權。
2、動態負載均衡演算法包括:最少連接數,最快響應速度,觀察方法,預測法,動態性能分配,動態伺服器補充,服務質量,服務類型,規則模式。
負載均衡演算法的種類有很多種,常見的負載均衡演算法包括輪詢法、隨機法、源地址哈希法、加權輪詢法、加權隨機法、最小連接法等,應根據具體的使用場景選取對應的演算法。
(7)負載均衡輪詢演算法擴展閱讀:
在計算機的世界,這就是大家耳熟能詳的負載均衡(load balancing),所謂負載均衡,就是說如果一組計算機節點(或者一組進程)提供相同的(同質的)服務,那麼對服務的請求就應該均勻的分攤到這些節點上。
負載均衡的意義在於,讓所有節點以最小的代價、最好的狀態對外提供服務,這樣系統吞吐量最大,性能更高,對於用戶而言請求的時間也更小。而且,負載均衡增強了系統的可靠性,最大化降低了單個節點過載、甚至crash的概率。不難想像,如果一個系統絕大部分請求都落在同一個節點上,那麼這些請求響應時間都很慢,而且萬一節點降級或者崩潰,那麼所有請求又會轉移到下一個節點,造成雪崩。
⑻ 伺服器集群的負載均衡演算法有哪些
輪轉(Round-Robin)演算法
加權輪轉(Weighted Round Robin)演算法
最小連接數(Least Connections)演算法
加權最小連接數(Weighted Least Connections)演算法
目的地址哈希散列(Destination Hashing Scheling)演算法
源地址哈希散列(Source Hashing Scheling)演算法
隨機(Random)演算法
⑼ 多台異地伺服器如何實現負載均衡
一般用的就用簡單的輪詢就好了
調度演算法
靜態方法:僅根據演算法本身實現調度;實現起點公平,不管伺服器當前處理多少請求,分配的數量一致
動態方法:根據演算法及後端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地 址對應的伺服器組,按「最小連接」原則從伺服器組中選出一台伺服器,若伺服器沒有超載,將請求發送到該伺服器;若伺服器超載,則按「最小連接」原則從這個集群中選出一台伺服器,將該伺服器加入到伺服器組中,將請求發送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,將最忙的伺服器從伺服器組中刪除, 以降低復制的程度。