負載均衡知識全概要
LB--負載均衡
在負載均衡叢集中需要一個分發器,我們將其稱之為Director,它位於多臺伺服器的上面的中間層,根據內部鎖定義的規則或排程方式從下面的伺服器群中選擇一個以此來進行響應請求,而其分發的方式則是根據某個演算法進行的。HA--高可用
負載均衡可以採用硬體裝置,也可以採用軟體負載。
商用硬體負載裝置成本通常較高(一臺幾十萬上百萬很正常),所以在條件允許的情況下我們會採用軟負載,軟負載解決的兩個核心問題是:選誰、轉發,其中最著名的是LVS(Linux Virtual Server)。
二、LVS:
LVS:Linux Virtual Server,linux虛擬服務——LVS是一個開源的軟體,可以實現LINUX平臺下的簡單負載均衡
Virtual Server via Network Address Translation NAT(VS/NAT) :虛擬伺服器通過網路地址轉換(VS / NAT)
高可用拓撲結構圖:(當然cache和DB也可以做叢集,DB可拆分、讀寫分離等等等)
VS/NAT是一種最簡單的方式,所有的RealServer只需要將自己的閘道器指向Director即可。
Virtual Server via IP Tunneling(VS/TUN)IP隧道實現虛擬伺服器
IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP地址的資料包文能被封裝和轉發到另一個IP地址。
Virtual Server via Direct Routing(VS/DR) 通過直接路由實現虛擬伺服器
VS/DR方式是通過改寫請求報文中的MAC地址部分來實現的。Director和RealServer必需在物理上有一個網路卡通過不間斷的區域網相連。
2、模式對比和選擇
VS/NAT缺點:請求和響應報文都需要通過負載排程器,所以只能十分有限的伺服器節點,會成為系統瓶頸
VS/TUN和VS/DR:只將請求排程到不同的後端伺服器,後端伺服器將應答的資料直接返回給使用者。這樣,負載排程器就可以處理大量的請求,它甚至可以排程百臺以上的伺服器(同等規模的伺服器),而它不會成為系統的瓶頸。
需要注意的是
VS/TUN:會有IP隧道的開銷,需要提高網路卡配置百兆/千兆網路卡;所有的伺服器必須支援“IP Tunneling”或者“IP Encapsulation”協議
VS/DR:要求負載排程器與實際伺服器都有一塊網路卡連在同一物理網段上,伺服器網路裝置(或者裝置別名)不作ARP響應,或者能將報文重定向(Redirect)到本地的Socket埠上
3、容災:
容災分為RS的容災和LVS的容災。
RS的容災可以通過LVS定期健康檢測實現,如果某臺RS失去心跳,則認為其已經下線,不會在轉發到該RS上。
LVS的容災可以通過主備+心跳的方式實現。主LVS失去心跳後,備LVS可以作為熱備立即替換。
容災主要是靠KeepAlived來做的。
4、LVS負載均衡排程演算法
◆最少的連線方式(Least Connection):傳遞新的連線給那些進行最少連線處理的伺服器。當其中某個伺服器發生第二到第7 層的故障,BIG-IP 就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配, 直到其恢復正常。
◆最快模式(Fastest):傳遞連線給那些響應最快的伺服器。當其中某個伺服器發生第二到第7 層的故障,BIG-IP 就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配,直到其恢復正常。
◆觀察模式(Observed):連線數目和響應時間以這兩項的最佳平衡為依據為新的請求選擇伺服器。當其中某個伺服器發生第二到第7 層的故障,BIG-IP就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配,直到其恢復正常。
◆預測模式(Predictive):BIG-IP利用收集到的伺服器當前的效能指標,進行預測分析,選擇一臺伺服器在下一個時間片內,其效能將達到最佳的伺服器相應使用者的請求。(被BIG-IP 進行檢測)
◆動態效能分配(Dynamic Ratio-APM):BIG-IP 收集到的應用程式和應用伺服器的各項效能引數,動態調整流量分配。
◆動態伺服器補充(Dynamic Server Act.):當主伺服器群中因故障導致數量減少時,動態地將備份伺服器補充至主伺服器群。
◆服務質量(QoS):按不同的優先順序對資料流進行分配。
◆服務型別(ToS): 按不同的服務型別(在Type of Field中標識)負載均衡對資料流進行分配。
◆規則模式:針對不同的資料流設定導向規則,使用者可自行
三、對比nginx和lvs
相關文章
- 負載均衡基礎知識負載
- 【知識分享】四層負載均衡和七層負載均衡負載
- LVS負載均衡-基礎知識梳理負載
- 負載均衡 ---- 概念認識篇負載
- 負載均衡有哪些知識點需要掌握?Linux運維負載Linux運維
- 【知識分享】提升伺服器效能的三種負載均衡伺服器負載
- 負載均衡負載
- 全棧必備——負載均衡的應用全棧負載
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- C++知識概要C++
- 【知識分享】企業在什麼情況下需要做負載均衡負載
- NGINX 負載均衡Nginx負載
- WebSocket負載均衡Web負載
- IP負載均衡負載
- 【Nginx】負載均衡Nginx負載
- nginx負載均衡Nginx負載
- 負載均衡技術(一)———負載均衡技術介紹負載
- 解密負載均衡技術和負載均衡演算法解密負載演算法
- 很全!淺談幾種常用負載均衡架構負載架構
- 全網最詳細的負載均衡原理圖解負載圖解
- 負載均衡技術(二)———常用負載均衡服務介紹負載
- 關於負載均衡的一些認識負載
- 淺談負載均衡負載
- 漫談負載均衡負載
- Nginx負載均衡模式Nginx負載模式
- 面試之負載均衡面試負載
- 負載均衡知多少?負載
- 負載均衡簡介負載
- 負載均衡詳解負載
- LoadBalancer負載均衡負載
- 負載均衡叢集負載
- 負載均衡---ribbon負載
- Nginx--負載均衡Nginx負載
- Flume負載均衡配置負載
- apache 負載均衡配置Apache負載
- 【Haproxy】haproxy負載均衡負載
- Tengine TCP 負載均衡TCP負載