導航:首頁 > IDC知識 > 多伺服器負載均衡

多伺服器負載均衡

發布時間:2020-10-24 14:03:33

1、集群、負載均衡與分布式有什麼區別?

集群、負載均衡與分布式的區別:

1、Linux集群主要分成三大類( 高可用集群, 負載均衡集群,科學計算集群)(下面只介紹負載均衡集群) 


負載均衡集群(Load Balance Cluster) 


負載均衡系統:集群中所有的節點都處於活動狀態,它們分攤系統的工作負載。一般Web伺服器集群、資料庫集群和應用伺服器集群都屬於這種類型。 



負載均衡集群一般用於相應網路請求的網頁伺服器,資料庫伺服器。這種集群可以在接到請求時,檢查接受請求較少,不繁忙的伺服器,並把請求轉到這些伺服器上。從檢查其他伺服器狀態這一點上看,負載均衡和容錯集群很接近,不同之處是數量上更多。 




2、負載均衡系統: 負載均衡又有DNS負載均衡(比較常用)、IP負載均衡、反向代理負載均衡等,也就是在集群中有伺服器A、B、C,它們都是互不影響,互不相乾的,任何一台的機器宕了,都不會影響其他機器的運行,當用戶來一個請求,有負載均衡器的演算法決定由哪台機器來處理,假如你的演算法是採用round演算法,有用戶a、b、c,那麼分別由伺服器A、B、C來處理; 




3、分布式是指將不同的業務分布在不同的地方。 


而集群指的是將幾台伺服器集中在一起,實現同一業務。 
分布式中的每一個節點,都可以做集群。 
而集群並不一定就是分布式的。 


舉例:就比如新浪網,訪問的人多了,他可以做一個群集,前面放一個響應伺服器,後面幾台伺服器完成同一業務,如果有業務訪問的時候,響應伺服器看哪台伺服器的負載不是很重,就將給哪一台去完成。 


而分布式,從窄意上理解,也跟集群差不多, 但是它的組織比較鬆散,不像集群,有一個組織性,一台伺服器垮了,其它的伺服器可以頂上來。 


分布式的每一個節點,都完成不同的業務,一個節點垮了,哪這個業務就不可訪問了。

2、為什麼需要伺服器負載均衡?採用伺服器負載均衡器有什麼優點?

隨著網站、應用訪問量的增加,一台伺服器已經不能滿足應用的需求,而需要多台伺服器集群,這時就會用到負載均衡

它的好處

負載均衡優化了訪問請求在伺服器組之間的分配,消除了伺服器之間的負載不平衡,從而提高了系統的反應速度與總體性能;

負載均衡可以對伺服器的運行狀況進行監控,及時發現運行異常的伺服器,並將訪問請求轉移到其它可以正常工作的伺服器上,從而提高伺服器組的可靠性採用了負均衡器器以後,可以根據業務量的發展情況靈活增加伺服器,系統的擴展能力得到提高,同時簡化了管理。

3、多台伺服器負載均衡,怎麼選擇?

一般用的就用簡單的輪詢就好了
調度演算法
靜態方法:僅根據演算法本身實現調度;實現起點公平,不管伺服器當前處理多少請求,分配的數量一致
動態方法:根據演算法及後端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地 址對應的伺服器組,按「最小連接」原則從伺服器組中選出一台伺服器,若伺服器沒有超載,將請求發送到該伺服器;若伺服器超載,則按「最小連接」原則從這個集群中選出一台伺服器,將該伺服器加入到伺服器組中,將請求發送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,將最忙的伺服器從伺服器組中刪除, 以降低復制的程度。

4、在伺服器架構中,集群,負載均衡,分布式有什麼區別嗎

伺服器集群:
伺服器集群就是指將很多伺服器集中起來一起進行同一種服務,在客戶端看來就像是只有一個伺服器。集群可以利用多個計算機進行並行計算從而獲得很高的計算速度,也可以用多個計算機做備份,從而使得任何一個機器壞了整個系統還是能正常運行。
伺服器負載均衡:

負載均衡 (Load Balancing) 建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴展網路設備和伺服器的帶寬、增加吞吐量、加強網路數據處理能力、提高網路的靈活性和可用性。
分布式伺服器:

所謂分布式資源共享伺服器就是指數據和程序可以不位於一個伺服器上,而是分散到多個伺服器,以網路上分散分布的地理信息數據及受其影響的資料庫操作為研究對象的一種理論計算模型伺服器形式。分布式有利於任務在整個計算機系統上進行分配與優化,克服了傳統集中式系統會導致中心主機資源緊張與響應瓶頸的缺陷,解決了網路GIS 中存在的數據異構、數據共享、運算復雜等問題,是地理信息系統技術的一大進步。
這個三種架構都是常見的伺服器架構,集群的主要是IT公司在做,可以保障重要數據安全;負載均衡主要是為了分擔訪問量,避免臨時的網路堵塞,主要用於電子商務類型的網站;分布式伺服器主要是解決跨區域,多個單個節點達到高速訪問的目前,一般是類似CDN的用途的話,會採用分布式伺服器。
純手工打字,希望可以幫的到你!

5、多台伺服器如何做網路負載均衡?

1:找分區或目錄同步軟體,某台伺服器改動了自動把修改應用到別的伺服器,比如紅旗的HA。

2:換種建伺服器的思路,後台用一台獨立的伺服器做資料庫和文件伺服器,用來存放資料庫和上傳的文件,另外的做負載均衡運行伺服器,把不需要變動的網頁程序放上面。

6、負載均衡伺服器有什麼優缺點?

隨著網站、應用訪問量的增加,一台伺服器租用已經不能滿足應用的需求,而需要多台伺服器集群,這時就會用到負載均衡,那麼負載均衡優點有那些呢,壹基比小喻來說說

負載均衡設備優勢

• 負載均衡優化了訪問請求在伺服器組之間的分配,消除了伺服器之間的負載不平衡,從而提高了系統的反應速度與總體性能;

• 負載均衡可以對伺服器的運行狀況進行監控,及時發現運行異常的伺服器,並將訪問請求轉移到其它可以正常工作的伺服器上,從而提高伺服器組的可靠性採用了負均衡器器以後,可以根據業務量的發展情況靈活增加伺服器,系統的擴展能力得到提高,同時簡化了管理。

負載均衡器有多種多樣的形式,除了作為獨立意義上的負載均衡器外,有些負載均衡器集成在交換設備中,置於伺服器與Internet鏈接之間,有些則以兩塊網路適配器將這一功能集成到PC中,一塊連接到Internet上,一塊連接到後端伺服器群的內部網路上。

一般而言,硬體負載均衡在功能、性能上優於軟體方式,不過成本昂貴。當Web伺服器為圖像服務、SSL(安全套接層)會話或資料庫事務而進行優化時,負載均衡器可以體現特別的價值。

當需要進行伺服器升級或系統維護時,保證穩定的伺服器退出服務以避免服務中斷。當選定某台伺服器要退出服務後,將不會將任何新的用戶分配到該伺服器。但是,它可以要該伺服器完成對當前用戶的服務。從而保證了無中斷的優質服務,並且簡化了伺服器群的管理。

智能的伺服器服務恢復

將重新啟動的伺服器應用到服務中時,避免新伺服器因突然出現的流量沖擊導致系統故障是非常重要的。所以,在將新伺服器引入伺服器群時,將逐漸地增加分配到該伺服器的流量,直至達到其完全的處理能力。從而不僅保證用戶在伺服器退出服務時,同時還保證伺服器在啟動期間以及應用程序開始時,均能獲得不間斷服務。

7、nginx 負載均衡 伺服器有多個站點,改怎麼設置選擇我需要的

負載均衡是我們大流量網站要做的一個東西,下面我來給大家介紹在Nginx伺服器上進行負載均衡配置方法,希望對有需要的同學有所幫助哦。
負載均衡
先來簡單了解一下什麼是負載均衡,單從字面上的意思來理解就可以解釋N台伺服器平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閑置的情況。那麼負載均衡的前提就是要有多台伺服器才能實現,也就是兩台以上即可。
測試環境
由於沒有伺服器,所以本次測試直接host指定域名,然後在VMware里安裝了三台CentOS。
測試域名 :a.com
A伺服器IP :192.168.5.149 (主)
B伺服器IP :192.168.5.27
C伺服器IP :192.168.5.126
部署思路
A伺服器做為主伺服器,域名直接解析到A伺服器(192.168.5.149)上,由A伺服器負載均衡到B伺服器(192.168.5.27)與C伺服器(192.168.5.126)上。

域名解析
由於不是真實環境,域名就隨便使用一個a.com用作測試,所以a.com的解析只能在hosts文件設置。
打開:C:
在末尾添加
192.168.5.149 a.com
保存退出,然後啟動命令模式ping下看看是否已設置成功

從截圖上看已成功將a.com解析到192.168.5.149IP
A伺服器nginx.conf設置
打開nginx.conf,文件位置在nginx安裝目錄的conf目錄下。
在http段加入以下代碼
upstream a.com {
server 192.168.5.126:80;
server 192.168.5.27:80;
}

server{
listen 80;
server_name a.com;
location / {
proxy_pass http://a.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
保存重啟nginx
B、C伺服器nginx.conf設置
打開nginx.confi,在http段加入以下代碼
server{
listen 80;
server_name a.com;
index index.html;
root /data0/htdocs/www;
}
保存重啟nginx
測試
當訪問a.com的時候,為了區分是轉向哪台伺服器處理我分別在B、C伺服器下寫一個不同內容的index.html文件,以作區分。
打開瀏覽器訪問a.com結果,刷新會發現所有的請求均分別被主伺服器(192.168.5.149)分配到B伺服器(192.168.5.27)與C伺服器(192.168.5.126)上,實現了負載均衡效果。
B伺服器處理頁面

C伺服器處理頁面

假如其中一台伺服器宕機會怎樣?
當某台伺服器宕機了,是否會影響訪問呢?
我們先來看看實例,根據以上例子,假設C伺服器192.168.5.126這台機子宕機了(由於無法模擬宕機,所以我就把C伺服器關機)然後再來訪問看看。
訪問結果:

我們發現,雖然C伺服器(192.168.5.126)宕機了,但不影響網站訪問。這樣,就不會擔心在負載均衡模式下因為某台機子宕機而拖累整個站點了。
如果b.com也要設置負載均衡怎麼辦?
很簡單,跟a.com設置一樣。如下:
假設b.com的主伺服器IP是192.168.5.149,負載均衡到192.168.5.150和192.168.5.151機器上
現將域名b.com解析到192.168.5.149IP上。
在主伺服器(192.168.5.149)的nginx.conf加入以下代碼:
upstream b.com {
server 192.168.5.150:80;
server 192.168.5.151:80;
}

server{
listen 80;
server_name b.com;
location / {
proxy_pass http://b.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
保存重啟nginx
在192.168.5.150與192.168.5.151機器上設置nginx,打開nginx.conf在末尾添加以下代碼:
server{
listen 80;
server_name b.com;
index index.html;
root /data0/htdocs/www;
}
保存重啟nginx
完成以後步驟後即可實現b.com的負載均衡配置。
主伺服器不能提供服務嗎?
以上例子中,我們都是應用到了主伺服器負載均衡到其它伺服器上,那麼主伺服器本身能不能也加在伺服器列表中,這樣就不會白白浪費拿一台伺服器純當做轉發功能,而是也參與到提供服務中來。
如以上案例三台伺服器:
A伺服器IP :192.168.5.149 (主)
B伺服器IP :192.168.5.27
C伺服器IP :192.168.5.126
我們把域名解析到A伺服器,然後由A伺服器轉發到B伺服器與C伺服器,那麼A伺服器只做一個轉發功能,現在我們讓A伺服器也提供站點服務。
我們先來分析一下,如果添加主伺服器到upstream中,那麼可能會有以下兩種情況發生:
1、主伺服器轉發到了其它IP上,其它IP伺服器正常處理;
2、主伺服器轉發到了自己IP上,然後又進到主伺服器分配IP那裡,假如一直分配到本機,則會造成一個死循環。
怎麼解決這個問題呢?因為80埠已經用來監聽負載均衡的處理,那麼本伺服器上就不能再使用80埠來處理a.com的訪問請求,得用一個新的。於是我們把主伺服器的nginx.conf加入以下一段代碼:
server{
listen 8080;
server_name a.com;
index index.html;
root /data0/htdocs/www;
}

重啟nginx,在瀏覽器輸入a.com:8080試試看能不能訪問。結果可以正常訪問

既然能正常訪問,那麼我們就可以把主伺服器添加到upstream中,但是埠要改一下,如下代碼:
upstream a.com {
server 192.168.5.126:80;
server 192.168.5.27:80;
server 127.0.0.1:8080;
}
由於這里可以添加主伺服器IP192.168.5.149或者127.0.0.1均可以,都表示訪問自己。
重啟Nginx,然後再來訪問a.com看看會不會分配到主伺服器上。

主伺服器也能正常加入服務了。
最後
一、負載均衡不是nginx獨有,著名鼎鼎的apache也有,但性能可能不如nginx。
二、多台伺服器提供服務,但域名只解析到主伺服器,而真正的伺服器IP不會被ping下即可獲得,增加一定安全性。

三、upstream里的IP不一定是內網,外網IP也可以。不過經典的案例是,區域網中某台IP暴露在外網下,域名直接解析到此IP。然後又這台主伺服器轉發到內網伺服器IP中。
四、某台伺服器宕機、不會影響網站正常運行,Nginx不會把請求轉發到已宕機的IP上

解析nginx負載均衡原理
摘要:對於一個大型網站來說,負載均衡是永恆的話題。隨著硬體技術的迅猛發展,越來越多的負載均衡硬體設備涌現出來,如F5 BIG-IP、Citrix NetScaler、Radware等等,雖然可以解決問題,但其高昂的價格卻往往令人望而卻步,因此負載均衡軟體仍然是大部分公司的不二之選。nginx作為webserver的後起之秀,其優秀的反向代理功能和靈活的負載均衡策略受到了業界廣泛的關注。本文將以工業生產為背景,從設計實現和具體應用等方面詳細介紹nginx負載均衡策略。
關鍵字:nginx 負載均衡 反向代理

8、什麼是負載均衡伺服器?

在網路應用中,有時會使用多台伺服器提供同一個服務,負載均衡就是把壓力平均分配給每台伺服器,比如使用DNS負載均衡就是最有效有簡單的一個方法,你可以去試試DNSPOD提供的智能解析,他里邊就包含負載均衡功能,我很多朋友都在用,很穩定也很強大~ dnspod*cn

9、多台網路負載均衡伺服器如何解決文件同步

換種思路解決這問題,我提供點方法:1:找分區或目錄同步軟體,某台服內務器改動了自動把修改應容用到別的伺服器,比如紅旗的HA。2:換種建伺服器的思路,後台用一台獨立的伺服器做資料庫和文件伺服器,用來存放資料庫和上傳的文件,另外的做負載均衡運行伺服器,把不需要變動的網頁程序放上面。。。。

10、多台伺服器負載均衡,各位做過嗎

負載均衡(Load Balance)

由於目前現有網路的各個核心部分隨著業務量的提高,訪問量和數據流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的伺服器設備根本無法承擔。在此情況下,如果扔掉現有設備去做大量的硬體升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升時,這又將導致再一次硬體升級的高額成本投入,甚至性能再卓越的設備也不能滿足當前業務量增長的需求。

針對此情況而衍生出來的一種廉價有效透明的方法以擴展現有網路設備和伺服器的帶寬、增加吞吐量、加強網路數據處理能力、提高網路的靈活性和可用性的技術就是負載均衡(Load Balance)。

負載均衡技術主要應用

1、DNS負載均衡 最早的負載均衡技術是通過DNS來實現的,在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的伺服器,達到負載均衡的目的。DNS負載均衡是一種簡單而有效的方法,但是它不能區分伺服器的差異,也不能反映伺服器的當前運行狀態。

2、代理伺服器負載均衡 使用代理伺服器,可以將請求轉發給內部的伺服器,使用這種加速模式顯然可以提升靜態網頁的訪問速度。然而,也可以考慮這樣一種技術,使用代理伺服器將請求均勻轉發給多台伺服器,從而達到負載均衡的目的。

與多伺服器負載均衡相關的知識