负载均衡-基本概念
負載均衡(Load Balance)把任務分攤到多個操作單元上進行執行。分類:1.軟/硬件負載均衡軟件:是直接通過軟件來進行負載均衡,比如nginx或者caddy里面都可以直接配置反代來實現負載均衡,
還有一些專門的工具,比如DNS Load Balance等,linux上IPVS也有這個功能。好處是方便簡單,
壞處是均衡軟件本身也會消耗一定的資源(常見的有DNS/反向代理/NAT(VIP))。硬件:則是直接買相關硬件設備(負載均衡器),安裝在服務器和外部網絡之間,成本高,但是效果好。2.本地/全局負載均衡本地負載均衡是針對本地范圍內的服務器群做負載均衡,全局負載均衡是針對不同地理位置,不同網絡結構的服務器做負載均衡,
基本使用的swarm或者k8s這種集群控制軟件,可以理解接成本地負載均衡,而那種類似CDN加速的那種均衡方式可以理解成是全局的負載均衡,
全局負載均衡要解決全球用戶同一個域名或者IP地址就能訪問到離自己最近的服務器獲得最快的訪問速度,通常多區域都有自己的服務器站點。部署方式:路由模式、橋接模式、服務直接返回模式1.路由模式:服務器的網關必須設置成負載均衡機LAN口地址,且與WAN口分屬不同的邏輯網絡。所有返回的流量也經過負載均衡。對網絡的改動小。2.橋接模式:配置簡單,直接負載均衡WAN口和LAN口分別連接上行設備和下行服務器,所有服務器與負載均衡在同一邏輯網絡中。3.服務直接返回模式:WAN口與服務器在同一個網絡中,客戶端訪問負載均衡虛擬IP(VIP),虛擬IP對應負載均衡機的WAN口,負載均衡根據策略將流量分發到服務器上,
服務器直接相應客戶端的請求,因此對于客戶端而言,相應的IP不是負載均衡的虛擬IP,而是服務器的自身IP。也就是說返回的流量是不經過負載均衡的。
這種方式需要服務器的寬帶要足夠大。均衡算法均衡的策略算法非常多,整體上分為兩類,一類是靜態的,另一類是動態的。靜態的典型的就是輪訓,一個一個按照順序輪,動態的典型的就是最小連接法,每次都找一個連接數最小的,給他派任務。拆分出很多算法的原因是
每種算法的優缺點并不同,比如輪訓就會導致不管是重要還是不重要的都一樣排隊執行(還有個叫WRR的權重輪訓處理這種問題),而最小連接是每次把
任務派給連接數最少的那個,連接數少并不意味著工作壓力少,要看每個連接對應多大的工作量是A*B的關系。所以說如果真要手動配置算法,就要結合
實際應用場景來選。
?
總結
- 上一篇: Docker Swarm mode与滚动
- 下一篇: Docker Swarm服务发现和负载均