半分鐘就懂 --- 分佈式與集羣是什麼 ? 區別是什麼?

1、大白話解說,半分鐘就懂,用生活中的例子來講明:mysql

 

小飯店原來只有一個廚師,切菜洗菜備料炒菜全乾。sql

後來客人多了,廚房一個廚師忙不過來,又請了個廚師,兩個廚師都能炒同樣的菜,兩個廚師的關係是集羣。服務器

爲了讓廚師專心炒菜,把菜作到極致,再請了個配菜師負責切菜,備菜,備料 ...  廚師和配菜師的關係是分佈式。負載均衡

 

一個配菜師也忙不過來了,又請了個配菜師,兩個配菜師關係是集羣。tcp

一個配菜師因故請假了,可是其他的配菜師仍是該啥就幹啥,只是沒請假的配菜師任務均勻的加量了,但他們的任務和職責是不變的,這是集羣。分佈式

 

集羣:多我的在一塊兒做一樣的事 。性能

分佈式 :多我的在一塊兒做不一樣的事 。spa

 

 

2、圖解:視頻

 

 

如下內容是我的整理的:blog

3、區別聯繫 (其實上面的內容應該已經讓你理解2者了)

 

1)我記得在一本講 tcp/ip 的書上有這樣一句話:分佈式是指 多個系統協同合做完成一個特定任務的系統。

分佈式是解決中心化管理的問題,把全部的任務疊加到一個節點處理,太慢了。

因此把一個大的問題拆分爲多個小的問題,並分別解決,最終協同合做。分佈式的主要工做是分解任務,將職能拆解。

 

2) 集羣主要的使用場景是爲了分擔請求的壓力,也就是在幾個服務器上部署相同的應用程序,來分擔客戶端請求。

當壓力進一步增大的時候,可能在須要存儲的部分,mysql 沒法面對不少的寫壓力。由於在 mysql 作成集羣以後,主要的寫壓力仍是在 master 的機器上面,其餘 slave 機器沒法分擔寫壓力,從而這個時候,也就引出來分佈式。

分佈式的主要應用場景是單臺機器已經沒法知足這種性能的要求,必需要融合多個節點,而且節點之間是相關之間有交互的。至關於在寫 mysql 的時候,每一個節點存儲部分數據,也就是分佈式存儲的由來。存儲一些非結構化數據:靜態文件、圖片、pdf、小視頻 ... 這些也就是分佈式文件系統的由來。

 

3)集羣主要是簡單加機器解決問題,對於問題自己不作任何分解;

分佈式處理裏必然包含任務分解與答案歸併。分佈式中的某個子任務節點,可能由一個集羣來代替;集羣中任一節點,都是作一個完整的任務。

集羣和分佈式都是由多個節點組成,可是集羣之間的通訊協調基本不須要;而分佈式各個節點的通訊協調必不可少。

 將一套系統拆分紅不一樣子系統部署在不一樣服務器上(這叫分佈式),

 而後部署多個相同的子系統在不一樣的服務器上(這叫集羣),部署在不一樣服務器上的同一個子系統應作負載均衡。 

 

分佈式:一個業務拆分爲多個子業務,部署在多個服務器上 。 

集羣:同一個業務,部署在多個服務器上 。

 

參考:https://www.zhihu.com/question/20004877

相關文章
相關標籤/搜索