Nginx/ZooKeeper 負載均衡的差異
Nginx是著名的反向代理伺服器,也被廣泛的作為負載均衡伺服器
ZooKeeper是分散式協調服務框架,有時也被用來做負載均衡
那麼他們的區別是什麼?如何選擇呢?
下面從實際場景看下他們的關係
Nginx是著名的反向代理伺服器,也被廣泛的作為負載均衡伺服器
ZooKeeper是分散式協調服務框架,有時也被用來做負載均衡
那麼他們的區別是什麼?如何選擇呢?
下面從實際場景看下他們的關係
Nginx的負載均衡配置非常簡單,把多個web server配置到nginx中,使用者訪問Nginx時,就會自動被分配到某個web server
upstream backend {
server 192.168.1.101;
server 192.168.1.111;
}
當網站規模變大,通常會進行服務拆分,各個服務獨立部署,通過遠端呼叫方式協同工作
為了保證穩定性,每個服務不會只使用一臺伺服器,也會作為一個叢集存在,那麼這個子叢集同樣需要一個負載均衡器,可以使用Nginx
到這裡還是沒有感覺有使用ZooKeeper的必要,因為使用Nginx完全沒問題
但隨著整個系統的演進,服務的數量會增加、每個服務叢集中的伺服器數量會增加
這時就會有一些小麻煩,例如
(1)配置維護的成本變高,因為節點太多
(2)單點故障的風險增加了,因為熱點服務的訪問量很高,如果這個服務叢集內的負載均衡服務出現問題,這個服務將失效
第一個問題,可以通過自己開發程式解決,但只是降低複雜度,並沒有實際解決
第二個問題,可以通過雙機高可用部署方案,使用另一臺nginx負載均衡伺服器隨時待命,只是成本較高
為了解決這些問題,就有人提出了使用ZooKeeper負載均衡的方案,之前就看到淘寶介紹過此類方案
ZooKeeper負載均衡的實現思路
把ZooKeeper作為一個服務的註冊中心,在其中登記每個服務,每臺伺服器知道自己是屬於哪個服務,在伺服器啟動時,自己向所屬服務進行登記,這樣,一個樹形的服務結構就呈現出來了
服務的呼叫者到註冊中心裡面查詢:能提供所需服務的伺服器列表,然後自己根據負載均衡演算法,從中選取一臺伺服器進行連線
呼叫者取到伺服器列表後,就可以快取到自己內部,省得下次再取,當伺服器列表發生變化,例如某臺伺服器當機下線,或者新加了伺服器,ZooKeeper會自動通知呼叫者重新獲取伺服器列表
由於ZooKeeper並沒有內建負載均衡策略,需要呼叫者自己實現,這個方案只是利用了ZooKeeper的樹形資料結構、watcher機制等特性,把ZooKeeper作為服務的註冊和變更通知中心,解決了Nginx負載均衡方案帶來的問題
相關文章
- nginx負載均衡Nginx負載
- NGINX 負載均衡Nginx負載
- 【Nginx】負載均衡Nginx負載
- Nginx負載均衡模式Nginx負載模式
- 做了反向代理和負載均衡的nginx配置檔案簡單示例(nginx.conf) HTTP負載均衡/TCP負載均衡負載NginxHTTPTCP
- Nginx負載均衡高可用Nginx負載
- 012.Nginx負載均衡Nginx負載
- Nginx負載均衡詳解Nginx負載
- nginx實現負載均衡Nginx負載
- 負載均衡之--Nginx、LVS、HAProxy負載Nginx
- Nginx/Httpd負載均衡tomcat配置Nginxhttpd負載Tomcat
- Nginx+Tomcat部署負載均衡NginxTomcat負載
- nginx學習之負載均衡Nginx負載
- Nginx服務系列——負載均衡Nginx負載
- 使用Nginx配置TCP負載均衡NginxTCP負載
- 使用nginx進行負載均衡Nginx負載
- Nginx實現簡單的負載均衡Nginx負載
- Nginx專題(2):Nginx的負載均衡策略及其配置Nginx負載
- nginx配置+uwsgi+負載均衡配置Nginx負載
- Nginx負載均衡之健康檢查Nginx負載
- Nginx 學習系列(二) ————- 負載均衡Nginx負載
- Nginx 學習系列(二) ------------- 負載均衡Nginx負載
- nginx+tomcat實現負載均衡NginxTomcat負載
- Nginx多種負載均衡策略搭建Nginx負載
- nginx安裝及負載均衡配置Nginx負載
- Nginx常用命令、負載均衡Nginx負載
- nginx負載均衡策略你知道多少?Nginx負載
- nginx自定義負載均衡及根據cpu執行自定義負載均衡Nginx負載
- nginx負載均衡原理分析到手動編寫簡易負載均衡器Nginx負載
- Nginx反向代理負載均衡的容器化部署Nginx負載
- 理解 Nginx HTTP 代理, 負載均衡, Buffering, CachingNginxHTTP負載
- 簡單實踐搭建 nginx 負載均衡Nginx負載
- Nginx如何實現四層負載均衡?Nginx負載
- Keepalived實現Nginx負載均衡高可用Nginx負載
- Linux環境下Nginx及負載均衡LinuxNginx負載
- Docker Compose+nginx實現負載均衡DockerNginx負載
- Nginx負載均衡反向代理伺服器Nginx負載伺服器
- 負載均衡之LVS與Nginx對比負載Nginx
- Nginx 做負載均衡的幾種輪詢策略Nginx負載