⑴ 什麼是負載均衡有啥優缺點
一、什麼是負載均衡
負載均衡(Load Balance)其意思就是分攤到多個操作單元上進行執行,例如Web伺服器、FTP伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。
單從字面上的意思來理解就可以解釋N台伺服器平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閑置的情況。那麼負載均衡的前提就是要有多台伺服器才能實現,也就是兩台以上即可。
負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴展網路設備和伺服器的帶寬、增加吞吐量、加強網路數據處理能力、提高網路的靈活性和可用性。
二、負載均衡的優點
減少伺服器的壓力,將原本一台伺服器索要承受的訪問量分給多台,並提高項目的可用性,當一台伺服器掛掉的時候不會導致項目癱瘓。
三、四層負載均衡和七層負載均衡
四層負載均衡工作在OSI模型的傳輸層,主要工作是轉發,它在接收到客戶端的流量以後通過修改數據包的地址信息將流量轉發到應用伺服器。
七層負載均衡工作在OSI模型的應用層,因為它需要解析應用層流量,所以七層負載均衡在接到客戶端的流量以後,還需要一個完整的TCP/IP協議棧。七層負載均衡會與客戶端建立一條完整的連接並將應用層的請求流量解析出來,再按照調度演算法選擇一個應用伺服器,並與應用伺服器建立另外一條連接將請求發送過去,因此七層負載均衡的主要工作就是代理。 七層負載均衡 也稱為「內容交換」,也就是主要通過報文中的真正有意義的應用層內容,再加上負載均衡設備設置的伺服器選擇方式,決定最終選擇的內部伺服器。
七層負載均衡的優點:這種方式可以對客戶端的請求和伺服器的響應進行任意意義上的修改,極大的提升了應用系統在網路層的靈活性;安全性高。
⑵ 什麼叫做負載平衡
負載平衡
負載均衡是由多台伺服器以對稱的方式組成一個伺服器集合,每台伺服器都具有等價的地位,都可以單獨對外提供服務而無須其他伺服器的輔助。通過某種負載分擔技術,將外部發送來的請求均勻分配到對稱結構中的某一台伺服器上,而接收到請求的伺服器獨立地回應客戶的請求。均衡負載能夠平均分配客戶請求到伺服器列陣,籍此提供快速獲取重要數據,解決大量並發訪問服務問題。這種群集技術可以用最少的投資獲得接近於大型主機的性能。
網路負載均衡的優點
第一,網路負載均衡能將傳入的請求傳播到多達32台伺服器上,即可以使用最多32台伺服器共同分擔對外的網路請求服務。網路負載均衡技術保證即使是在負載很重的情況下,伺服器也能做出快速響應;
第二,網路負載均衡對外只需提供一個IP地址(或域名);
第三,當網路負載均衡中的一台或幾台伺服器不可用時,服務不會中斷。網路負載均衡自動檢測到伺服器不可用時,能夠迅速在剩餘的伺服器中重新指派客戶機通訊。這項保護措施能夠幫助你為關鍵的業務程序提供不中斷的服務,並可以根據網路訪問量的增加來相應地增加網路負載均衡伺服器的數量;
第四,網路負載均衡可在普通的計算機上實現。
網路負載均衡的實現過程
在Windows Server 2003中,網路負載均衡的應用程序包括Internet信息服務(IIS)、ISA Server 2000防火牆與代理伺服器、VPN虛擬專用網、終端伺服器、Windows Media Services(Windows視頻點播、視頻廣播)等服務。同時,網路負載均衡有助於改善伺服器的性能和可伸縮性,以滿足不斷增長的基於Internet客戶端的需求。
網路負載均衡可以讓客戶端用一個邏輯Internet名稱和虛擬IP地址(又稱群集IP地址)訪問群集,同時保留每台計算機各自的名稱。下面,我們將在兩台安裝Windows Server 2003的普通計算機上,介紹網路負載均衡的實現及應用。
這兩台計算機中,一台計算機名稱為A,IP地址為192.168.0.7;另一台名為B,IP地址為192.168.0.8。規劃網路負載均衡專用虛擬IP地址為192.168.0.9。當正式應用時,客戶機只需要使用IP地址192.168.0.9來訪問伺服器,網路服務均衡會根據每台伺服器的負載情況自動選擇192.168.0.7或者192.168.0.8對外提供服務。具體實現過程如下:
在實現網路負載均衡的每一台計算機上,只能安裝TCP/IP協議,不要安裝任何其他的協議(如IPX協議或者NetBEUI協議),這可以從「網路連接屬性」中查看。
第一步,分別以管理員身份登錄A機和B機,打開兩台機的「本地連接」屬性界面,勾選「此連接使用下列項目」中的「負載均衡」項並進入「屬性」對話框,將IP地址都設為192.168.0.9(即負載均衡專用IP),將子網掩碼設置為255.255.255.0;
第二步,分別進入A機和B機的「Internet協議(TCP/IP)」屬性設置界面,點擊「高級」按鈕後,在彈出的「高級TCP/IP設置」界面中添加IP地址192.168.0.9和子網掩碼設置為255.255.255.0。
第三步,退出兩台計算機的「本地連接屬性」窗口,耐心等一會兒讓系統完成設置。
以後,如果這兩台伺服器不能滿足需求,可以按以上步驟添加第三台、第四台計算機到網路負載均衡系統中以滿足要求。
編輯詞條
⑶ 「負載均衡」是什麼意思
「負載均衡」的意思是指建立在現有的網路結構之上,提供了一個便宜有效透明的方法擴展網路設備和伺服器的帶寬、增加吞吐量、加強網路數據處理能力、提高網路的靈活性和可用性。英文名稱為Load Balance,其意思就是分攤到多個操作單元上進行執行,例如Web伺服器、FTP伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。
⑷ 負載均衡基本介紹
【負載均衡架構部分轉自】 58沈劍 [架構師之路]( https://mp.weixin.qq.com/s
負載均衡: 是分布式系統架構設計中必須考慮的因素之一,它通常是指,將請求/數據【均勻】分攤到多個操作單元上執行,負載均衡的關鍵在於【均勻】
常見的負載均衡方案:
【客戶端層】到【反向代理層】的負載均衡,是通過「DNS輪詢」實現的:DNS-server對於一個域名配置了多個解析ip,每次DNS解析請求來訪問DNS-server,會輪詢返回這些ip,保證每個ip的解析概率是相同的。這些ip就是nginx的外網ip,以做到每台nginx的請求分配也是均衡的。
【反向代理層】到【站點層】的負載均衡,是通過「nginx」實現的。通過修改nginx.conf,可以實現多種負載均衡策略:
【站點層】到【服務層】的負載均衡,是通過「服務連接池」實現的。
上游連接池會建立與下游服務多個連接,每次請求會「隨機」選取連接來訪問下游服務。(也即是rpc框架實現的)
在數據量很大的情況下,由於數據層(db,cache)涉及數據的水平切分,所以數據層的負載均衡更為復雜一些,它分為「數據的均衡」,與「請求的均衡」。
數據的均衡是指 :水平切分後的每個服務(db,cache),數據量是差不多的。
請求的均衡是指 :水平切分後的每個服務(db,cache),請求量是差不多的。
(1)按照range水平切分
(2)按照id哈希水平切分
[圖片上傳中...(-6b2508-1561902875888-0)]
常見的負載均衡系統包括 3 種:DNS 負載均衡、硬體負載均衡和軟體負載均衡。
硬體負載均衡是通過單獨的硬體設備來實現負載均衡功能,這類設備和路由器、交換機類似,可以理解為一個用於負載均衡的基礎網路設備。比如業界非常出名的F5
缺點:
(1)價格實在非常昂貴
(2)擴展性不強
軟體負載均衡通過負載均衡軟體來實現負載均衡功能,常見的有 Nginx 和 LVS。
nginx和F5: https://blog.csdn.net/chabale/article/details/8956717
nginx和lvs比較: https://blog.51cto.com/hzcto/2086691
lvs: https://www.cnblogs.com/liwei0526vip/p/6370103.html
ELB: https://aws.amazon.com/cn/elasticloadbalancing/
SLB: https://help.aliyun.com/proct/27537.html
題目:日活躍用戶 1000 萬的論壇的負載均衡集群,該如何設計呢?
(1)評估流量
1000萬DAU,換算成秒級(一天12小時),平均約等於232。
考慮每個用戶操作次數,假定10,換算成平均QPS=2320。
考慮峰值是均值倍數,假定5,換算成峰值QPS=11600。
考慮靜態資源、圖片資源、服務拆分等,流量放大效應,假定10,QPS 10=116000。
(2)容量規劃
考慮高可用、異地多活,QPS 2=232000。
考慮未來半年增長,QPS*1.5=348000。
(3)方案設計
可以用三級導流:
第一級,DNS,確定機房,以目前量級,可以不考慮。
第二級,確定集群,擴展優先,則選Haproxy/LVS,穩定優先則選F5。
第三級,Nginx+KeepAlived,確定實例。
(4)架構圖
接入層技術:
缺點:
優點:
缺點:
優點:
缺點:
缺點:
nginx畢竟是軟體,性能比tomcat好,但總有個上限,超出了上限,還是扛不住。lvs就不一樣了,它實施在操作系統層面;f5的性能又更好了,它實施在硬體層面;它們性能比nginx好很多,例如每秒可以抗10w,這樣可以利用他們來擴容。
99.9999%的公司到這一步基本就能解決接入層高可用、擴展性、負載均衡的問題。 假設還扛不住的話,就要考慮使用硬體設備f5等。如果還是扛不住,那麼只有DNS來擴容了。
水平擴展,才是解決性能問題的根本方案,能夠通過加機器擴充性能的方案才具備最好的擴展性。 facebook,google,的PV是不是超過80億呢,它們的域名只對應一個ip么,終點又是起點,還是得通過DNS輪詢來進行擴容:
比如購買了阿里雲或者aws。那麼基本會使用雲廠商提供的負載均衡中間件,比如aws(elb)、阿里雲(slb)。這個負載均衡軟體可以認為是 lvs+keepalived的高可用負載均衡服務
後端的service有可能部署在硬體條件不同的伺服器上:
1)如果對標最低配的伺服器「均勻」分攤負載,高配的伺服器的利用率不足;
2)如果對標最高配的伺服器「均勻」分攤負載,低配的伺服器可能會扛不住;
(1)通過「靜態權重」標識service的處理能力
優點: 簡單,能夠快速的實現異構伺服器的負載均衡。
缺點: 權重是固定的,無法自適應動態調整,而很多時候,伺服器的處理能力是很難用一個固定的數值量化。
(2)通過「動態權重」標識service的處理能力
提問:通過什麼來標識一個service的處理能力呢?
回答:其實一個service能不能處理得過來,能不能響應得過來,應該由調用方說了算。調用服務,快速處理了,處理能力跟得上;調用服務,處理超時了,處理能力很有可能跟不上了。
動態權重設計:
例如:
(1)設置一個閾值,超過閾值直接丟棄
(2)藉助「動態權重」來實施過載保護
案例策略:
1)service的負載均衡、故障轉移、超時處理通常是RPC-client連接池層面來實施的
2)異構伺服器負載均衡,最簡單的方式是靜態權重法,缺點是無法自適應動態調整
3)動態權重法,可以動態的根據service的處理能力來分配負載,需要有連接池層面的微小改動
4)過載保護,是在負載過高時,service為了保護自己,保證一定處理能力的一種自救方法
5)動態權重法,還可以用做service的過載保護