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負載
- nginx 負載均衡搭建Nginx負載
- Nginx負載均衡策略Nginx負載
- 解析 Nginx 負載均衡Nginx負載
- Nginx負載均衡詳解Nginx負載
- Nginx負載均衡高可用Nginx負載
- nginx實現負載均衡Nginx負載
- Nginx 的 TCP 負載均衡介紹NginxTCP負載
- 【Nginx】Nginx反向代理和負載均衡部署Nginx負載
- Nginx服務系列——負載均衡Nginx負載
- 使用Nginx配置TCP負載均衡NginxTCP負載
- nginx學習之負載均衡Nginx負載
- 使用nginx進行負載均衡Nginx負載
- 使用nginx負載均衡nodejsNginx負載NodeJS
- Nginx 負載均衡原理解讀Nginx負載
- [Open Source] 負載均衡之Nginx負載Nginx
- Nginx負載均衡配置說明Nginx負載
- Nginx + IIS 實現負載均衡Nginx負載
- Nginx實現簡單的負載均衡Nginx負載
- Nginx簡單的負載均衡配置示例Nginx負載
- 012.Nginx負載均衡Nginx負載
- Nginx/Httpd負載均衡tomcat配置Nginxhttpd負載Tomcat
- Nginx多種負載均衡策略搭建Nginx負載
- Nginx 學習系列(二) ------------- 負載均衡Nginx負載
- Nginx 學習系列(二) ————- 負載均衡Nginx負載
- Nginx+Tomcat部署負載均衡NginxTomcat負載
- nginx負載均衡策略你知道多少?Nginx負載
- nginx配置+uwsgi+負載均衡配置Nginx負載
- Nginx常用命令、負載均衡Nginx負載
- Nginx負載均衡之健康檢查Nginx負載
- nginx詳解反向代理負載均衡Nginx負載
- Nginx專題(2):Nginx的負載均衡策略及其配置Nginx負載
- 【nginx】用Redware、Nginx、Keepalive實現的負載均衡Nginx負載
- nginx負載均衡原理分析到手動編寫簡易負載均衡器Nginx負載