基於軟體的負載均衡(Nginx與ZooKeeper解析)
什麼是負載均衡
負載均衡(Load Balance)是分散式系統架構設計中必須考慮的因素之一,它通常是指,將請求/資料【均勻】分攤到多個操作單元上執行,負載均衡的關鍵在於【均勻】。常見網際網路分散式架構如上,分為客戶端層、反向代理nginx層、站點層、服務層、資料層。
現在使用最多的基於軟體的負載均衡是Nginx和ZooKeeper:
Nginx是著名的反向代理伺服器,也被廣泛的作為負載均衡伺服器
ZooKeeper是分散式協調服務框架,有時也被用來做負載均衡
那麼它們有什麼區別?我們還怎麼選擇
Nginx
Nginx的負載均衡配置
(1)把多個web server配置到nginx中,使用者訪問Nginx時,就會自動被分配到某個web server。
(2)當網站規模變大,通常會進行服務拆分,各個服務獨立部署,通過遠端呼叫方式協同工作。
(3)為了保證穩定性,每個服務不會只使用一臺伺服器,也會作為一個叢集存在,那麼子叢集也可以使用Nginx負載均衡。
ZooKeeper
ZooKeeper的負載均衡模式
(1)ZooKeeper作為一個服務的註冊中心,每個服務在其註冊中心登記,每臺伺服器知道自己是屬於哪個服務,在伺服器啟動時,自己向所屬服務進行登記
(2)服務的呼叫者到註冊中心裡面查詢:能提供所需服務的伺服器列表,然後自己根據負載均衡演算法,從中選取一臺伺服器進行連線。
(3)呼叫者取到伺服器列表後,就可以快取到自己內部,省得下次再取,當伺服器列表發生變化,例如某臺伺服器宕機下線,或者新加了伺服器,ZooKeeper會自動通知呼叫者重新獲取伺服器列表
使用場景
使用Nginx,隨著整個系統的演進, 服務 的數量會 增加 、每個服務叢集中的 伺服器 數量會 增加
這時就會有一些小麻煩,例如
(1)配置維護的成本變高,因為節點太多
(2)單點故障的風險增加了,因為熱點服務的訪問量很高,如果這個服務叢集內的負載均衡服務出現問題,這個服務將失效
第一個問題,可以通過自己開發程式解決,但只是降低複雜度,並沒有實際解決
第二個問題,可以通過雙機高可用部署方案,使用另一臺nginx負載均衡伺服器隨時待命,只是成本較高
而ZooKeeper作為服務的註冊和變更通知中心,解決了Nginx負載均衡方案帶來的問題。
但是ZooKeeper並沒有內建負載均衡策略,需要呼叫者自己實現,這個方案只是利用了ZooKeeper的樹形資料結構、watcher機制等特性。
相關推薦
基於軟體的負載均衡(Nginx與ZooKeeper解析)
什麼是負載均衡 負載均衡(Load Balance)是分散式系統架構設計中必須考慮的因素之一,它通常是指,將請求/資料【均勻】分攤到多個操作單元上執行,負載均衡的關鍵在於【均勻】。常見網際網路分散式架構如上,分為客戶端層、反向代理nginx層、站點層、服務層、
Nginx實現負載均衡(nginx + tomcat應用分散式)
一、 工具 nginx-1.8.0 apache-tomcat-6.0.33 二、 目標 實現高效能負載均衡的Tomcat
nginx反向代理負載均衡(輪詢權重IPHash)
-s 圖片服務器 後臺管理 session AI 需要 new 守護進程 weight 1 Nginx反向代理 1.1 實現圖片回顯 1.1.1 反向代理 說明:當用戶發出image.jt.com/2018/1.jpg時,首先將請求發往Nginx.經過Nginx內部
動態負載均衡(Nginx+Consul+UpSync)
Http動態負載均衡 什麼是動態負載均衡 傳統的負載均衡,如果Upstream引數發生變化,每次都需要重新載入nginx.conf檔案, 因此擴充套件性不是很高,所以我們可以採用動態負載均衡,實現Upstream可配置化、動態化,無需人工重新載入nginx.conf。 這類似分散式的配置中心 &nb
動態負載均衡(Nginx+Consul+UpSync)環境搭建
首先 安裝好 Consul upsync 然後: 1、配置安裝Nginx 需要做配置,包括分組之類的,建立目錄,有些外掛是需要存放在這些目錄的 groupadd nginx useradd -g nginx -s /sbin/nologin nginx
通過http、https域名訪問靜態網頁、nginx配置負載均衡(nginx配置)
很多場景下需要可以通過瀏覽器訪問靜態網頁,不想把伺服器ip地址直接暴露出來,通過nginx可以解決這個問題。 實現http域名訪問靜態網頁 1.域名解析配置(本文都是以阿里云為例,其他平臺,操作步驟類似) 進入阿里雲的域名解析頁面,配置域名指向的伺服器地址(記錄型別選擇A,記錄值填寫伺服器ip,記得把伺服器的
基於Nginx的軟體負載均衡實現解讀
負載均衡涉及到以下的基礎知識。 (1) 負載均衡演算法 a. Round Robin: 對所有的backend輪訓傳送請求,算是最簡單的方式了,也是預設的分配方式; b. Least Connections(least_conn): 跟蹤和backend當前的活躍連線數目,最少的連線數目說明這個backen
基於Nginx的負載均衡技術研究與實現
一、下載安裝及使用 1、版本 日期 版本 CHANGES NGINX NGINX/WINDOWS 2018.6.27 MainLine(開發版) C
架構之路:nginx與IIS服務器搭建集群實現負載均衡(二)
原創 not c盤 鏈接 發布 原創文章 hang 實戰 負載均衡 【前言】 在《架構之路:nginx與IIS服務器搭建集群實現負載均衡(一)》中小編簡單的講解了Nginx的原理!俗話說:光說不練假把式。接下來,小編就和大家一起來做個小Demo來體會一下Nginx的
架構之路:nginx與IIS服務器搭建集群實現負載均衡(三)
blog 存儲 bsp 知識 exe ESS 步驟 校驗 con 參考網址:https://blog.csdn.net/zhanghan18333611647/article/details/50811980 【前言】 在《架構之路:nginx與IIS服務器搭建集群
Nginx實現七層的負載均衡(LB Nginx)
lb nginx Nginx實現七層的負載均衡調度到不同組後端服務器1. 動靜分離2. 網站進行分區=================================================================================拓撲結構
Nginx+keepalived做雙機熱備,實現負載均衡(主主模式)
nginx keepalive Keepalived: 簡介:Keepalived的作用是檢測服務器的狀態,如果有一臺web服務器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常後Keepali
企業實戰(4)-實現基於Haproxy負載均衡集群的電子商務網站架構
haproxy keepalived 企業實戰:逐步實現企業各種情景下的需求企業情景四:隨著公司業務的發展,公司負載均衡服務已經實現四層負載均衡,但業務的復雜程度提升,公司要求把mobile手機站點作為單獨的服務提供,不在和pc站點一起提供服務,此時需要做7層規則負載均衡,運維總監要求,能否用一種服務
Nginx+Tomcat 配置實現負載均衡(附安裝包)
jsp color 一個 網頁 管理 密碼 bin pcr 解壓 實驗目的: Nginx 是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。 其特點是占有內存少,並發能力強,事實上nginx的
2、Tomcat叢集,並用Nginx實現負載均衡(win環境)
1、Tomcat的配置 1、系統環境變數配置: 首先要實現Tomcat的叢集就得擁有多個tomcat,所以我在本地電腦下載了兩個Tomcat,我這裡使用的是Tomcat7,當然,配置與Tomcat的版本沒多大關係~ 下載之後我們先來配置好環境變數: 在我們的系統變數中增加上
Spring Cloud ---- 服務消費與負載均衡(Rest + Ribbon )
上一篇主要寫了基於Eurake的服務的註冊,主要就是建立註冊中心,建立服務者,將服務者註冊到註冊中心,完成服務的暴露。這一篇主要寫服務的消費與服務消費的負載均衡。 服務的呼叫方式有兩種,Rest + ribbon ,另一鍾是feign,feign集成了ribbon。這一篇主要說前者. 因為服務
Spring Cloud ---- 服務消費與負載均衡(feign)
req 啟動文件 創建 code cli 負載均衡。 auto request 文件 feign是一個聲明式的偽客戶端,只需要創建一個接口並且註解,它具有可插拔的特性。feign集合了Ribbon,再與Eurake結合實現服務的註冊發現與負載均衡。結合Hystrix,具
網站集群架構實戰(LVS負載均衡、Nginx代理緩存、Nginx動靜分離、Rsync+Inotify全網備份、Zabbix自動註冊全網監控)--技術流ken
.com auth 分發 發生 lnmp process daemon bytes sendfile 前言 最近做了一個不大不小的項目,現就刪繁就簡單獨拿出來web集群這一塊寫一篇博客。數據庫集群請參考《MySQL集群架構篇:MHA+MySQL-PROXY+LVS實現M
使用nginx實現負載均衡(Docker版本)
現在服務都要處理高併發的問題,如果將服務部署在一臺伺服器上,當很多人同時訪問可能會使伺服器記憶體過高而導致系統崩潰,所以就需要使用負載均衡來減輕伺服器的負擔。通過修改nginx配置可以實現負載均衡。 nginx文件連結:http://www.nginx.cn/doc/ 舉個例子:
網站叢集架構實戰(LVS負載均衡、Nginx代理快取、Nginx動靜分離、Rsync+Inotify全網備份、Zabbix自動註冊全網監控)--技術流ken
前言 WEB叢集專案簡介 隨著網站訪問量的激增,勢必會導致網站的負載增加,現需求搭載一套高效能,高負載,高可用的網站叢集架構以保障網站的持續、高效、安全、穩定的執行。 針對以上需求,我們採用瞭如下的技術: 使用負載均衡技術來實現網站請求的排程分發,減小後端伺服器的壓力。 配置了KEEPALIVED解決