一文秒懂分散式、叢集、負載均衡之間的區別
來源:mikechen的網際網路架構
平時經常接觸:叢集、分散式、負載均衡、分散式資料一致性等問題,究竟有什麼區別?有什麼關聯?希望本篇能解釋清楚之間的區別
01
—
伺服器叢集
1.叢集概念
叢集就是一組相互獨立的計算機,透過高速的網路組成一個計算機系統。
伺服器叢集就是指將很多伺服器集中起來一起進行同一種服務,在客戶端看來就像是隻有一個伺服器。
2.叢集的特點和優勢
1)高效能
比如上千臺伺服器同時計算執行,遠大於單機的執行效率(可以參考:google公開有關GFS,bigtable,mapreduce的三篇論文)。
2)價效比優勢
利用通用廉價的伺服器代替小型機,例如:阿里轟轟烈烈的去IOE(去掉IBM的小型機、Oracle資料庫、EMC儲存裝置,代之以自己在開源軟體基礎上開發的系統)
3)可伸縮性
比如:阿里雙11,除了提前預估伺服器外,在極端的情況下,可以實現動態的伺服器擴容。
3.叢集的分類
一般分為如下三類:
負載均衡叢集(Load balancing clusters)簡稱LBC
高可用性叢集(High-availability clusters)簡稱HAC
高效能運算叢集(High-perfomance clusters)簡稱HPC
大家平時接觸最多的就是負載均衡叢集,常用的有 Nginx 把請求分發給後端的不同web伺服器,還有就是資料庫叢集,負載均衡就是,為了保證伺服器的高可用,高併發。
02
—
負載均衡
在伺服器叢集中,需要有一臺伺服器充當排程者的角色,使用者的所有請求都會首先由它接收,排程者再根據每臺伺服器的負載情況將請求分配給某一臺後端伺服器去處理。
那麼在這個過程中,排程者如何合理分配任務,保證所有後端伺服器都將效能充分發揮,從而保持伺服器叢集的整體效能最優,這就是負載均衡。
如果還想更加全面深入瞭解負載均衡,請檢視我之前寫的:史上最全負載均衡原理圖文詳解
03
—
分散式
分散式是指將不同的業務分佈在不同的地方,而叢集指的是將幾臺伺服器集中在一起,實現同一業務。
分散式中的每一個節點,都可以做叢集,而叢集並不一定就是分散式的。
04
—
分散式資料一致性
分散式系統中,解決了負載均衡的問題後,另外一個問題就是資料的一致性了。
在分散式叢集中,很難保障資料的一致性,在以往的單節點服務中,通常使用鎖來實現,當發生併發衝突時 透過對鎖的持有獲得物件的操作權,從而保證資料在同一時刻只允許被一個請求操作。
但是在叢集中,若同樣採用鎖的機制,那麼需要一臺節點用來管理分配鎖,當其他節點進行請求前,首先去獲取鎖從而獲得執行權。
但是這樣會產生單節點問題,即若管理鎖的節點down掉,那麼整個叢集將無法工作。同時,由於鎖的機制會使整個叢集變成序列化單節點的形式,失去了叢集的意義。
所以,在叢集中需要一種高容錯的分散式一致性演算法,因此提出了Paxos演算法。
在Paxos演算法的基礎上後續有出現了:ZAB、Raflt等演算法。
Raft演算法也是解決分散式系統一致性問題的,與 Paxos 實現的功能相同,相對來說更容易實現和理解。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027824/viewspace-2946806/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 叢集、負載均衡、分散式的區別與聯絡負載分散式
- 圖片叢集分散式儲存和負載均衡分散式負載
- 負載均衡叢集負載
- 秒懂負載均衡與反向代理負載
- 一文讀懂“負載均衡”負載
- 分散式與叢集的區別分散式
- dubbo叢集和負載均衡負載
- 叢集和分散式區別分散式
- 負載均衡的mariadb叢集搭建負載
- 【Linux】叢集和負載均衡Linux負載
- Tomcat叢集與負載均衡Tomcat負載
- LNMP 分散式叢集(一):Nginx+PHP平臺搭建與負載均衡配置LNMP分散式NginxPHP負載
- 4.10 負載均衡分散式負載分散式
- orleans叢集及負載均衡實現負載
- haproxy(單機)+mysql叢集負載均衡MySql負載
- 伺服器叢集和負載均衡伺服器負載
- 如何最佳化負載均衡?一文講懂負載
- 四七層負載均衡的區別負載
- Apache +Tomcat的負載均衡與叢集配置ApacheTomcat負載
- 分散式與叢集的區別是什麼?分散式
- 負載均衡 - MQTT Broker 叢集詳解(一)負載MQQT
- apache tomcat叢集配置和負載均衡ApacheTomcat負載
- 從網路到分散式-負載均衡分散式負載
- 單機、分散式、叢集的區別與聯絡分散式
- Haproxy+Keepalived高可用負載均衡叢集負載
- rabbitmq單機多例項叢集與負載均衡MQ負載
- 叢集,lvs負載均衡的四種工作模式負載模式
- docker初體驗:docker部署nginx負載均衡叢集DockerNginx負載
- kubernetes叢集內排程與負載均衡負載
- Nginx+tomcat實現叢集跟負載均衡NginxTomcat負載
- lvs負載均衡叢集詳細總結負載
- Nginx實現tomcat叢集進行負載均衡NginxTomcat負載
- Nginx+tomcat實現叢集和負載均衡NginxTomcat負載
- 用 LVS 搭建一個負載均衡叢集負載
- Linux系統(五)負載均衡LVS叢集之DR模式Linux負載模式
- 分散式架構篇 | OceanBase負載均衡的魅力分散式架構負載
- Nginx負載均衡:分散式/熱備Web Server的搭建Nginx負載分散式WebServer
- Nginx實現叢集的負載均衡配置過程詳解Nginx負載