一文秒懂分散式、叢集、負載均衡之間的區別
來源: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叢集和負載均衡負載
- 4.10 負載均衡分散式負載分散式
- LNMP 分散式叢集(一):Nginx+PHP平臺搭建與負載均衡配置LNMP分散式NginxPHP負載
- haproxy(單機)+mysql叢集負載均衡MySql負載
- orleans叢集及負載均衡實現負載
- 四七層負載均衡的區別負載
- 分散式與叢集的區別是什麼?分散式
- 叢集,lvs負載均衡的四種工作模式負載模式
- 如何最佳化負載均衡?一文講懂負載
- kubernetes叢集內排程與負載均衡負載
- 負載均衡 - MQTT Broker 叢集詳解(一)負載MQQT
- Haproxy+Keepalived高可用負載均衡叢集負載
- 單機、分散式、叢集的區別與聯絡分散式
- 從網路到分散式-負載均衡分散式負載
- 分散式架構篇 | OceanBase負載均衡的魅力分散式架構負載
- Linux環境搭建Nginx+Tomcat負載均衡叢集LinuxNginxTomcat負載
- docker初體驗:docker部署nginx負載均衡叢集DockerNginx負載
- LVS+Keepalive 實現負載均衡高可用叢集負載
- 使用Redis儲存Nginx+Tomcat負載均衡叢集的SessionRedisNginxTomcat負載Session
- 一文秒懂Restful、SOAP、RPC、SOA、微服務的區別RESTRPC微服務
- centos7下配置nginx反向代理負載均衡叢集CentOSNginx負載
- 粘性會話負載均衡 - MQTT Broker 叢集詳解(二)會話負載MQQT
- 負載均衡之keepalived負載
- [原始碼解析] 並行分散式任務佇列 Celery 之 負載均衡原始碼並行分散式佇列負載
- RabbitMQ(四):使用Docker構建RabbitMQ高可用負載均衡叢集MQDocker負載
- Dubbo學習筆記(四)叢集容錯與負載均衡筆記負載
- Dapr + .NET Core實戰(十一)單機Dapr叢集負載均衡負載
- 藉助 TCP 負載均衡和 Galera 叢集擴充套件 MySQLTCP負載套件MySql
- JMeter分散式壓測/JMeter負載新增/jmeter負載均衡/jmeter Windows系統壓測負載新增JMeter分散式負載Windows
- [分散式][高併發]負載均衡方案和演算法分散式負載演算法
- 面試之負載均衡面試負載
- 【SpringCloud】之Ribbon負載均衡SpringGCCloud負載
- 負載均衡和動態負載均衡分別是什麼?-VeCloud負載Cloud