大白話:分散式與叢集是什麼 ?( 半分鐘就懂)
瘋狂創客圈 Java 分散式聊天室【 億級流量】實戰系列—番外篇【 部落格園 總入口 】
文章目錄
一、大白話解說,半分鐘就懂
小飯店原來只有一個廚師,切菜洗菜備料炒菜全乾。
後來客人多了,廚房一個廚師忙不過來,又請了個廚師,兩個廚師都能炒一樣的菜,兩個廚師的關係是叢集。
為了讓廚師專心炒菜,把菜做到極致,再請了個配菜師負責切菜,備菜,備料 … 廚師和配菜師的關係是分散式。
一個配菜師也忙不過來了,又請了個配菜師,兩個配菜師關係是叢集。
一個配菜師因故請假了,但是其餘的配菜師還是該啥就幹啥,只是沒請假的配菜師任務均勻的加量了,但他們的任務和職責是不變的,這是叢集。
叢集:多個人在一起作同樣的事 。
分散式 :多個人在一起作不同的事 。
二、圖解:
以上內容轉自:https://www.zhihu.com/question/20004877
以下內容是個人整理的:
三、區別聯絡
1)我記得在一本講 tcp/ip 的書上有這樣一句話:分散式是指 多個系統協同合作完成一個特定任務的系統。
分散式是解決中心化管理的問題,把所有的任務疊加到一個節點處理,太慢了。
所以把一個大的問題拆分為多個小的問題,並分別解決,最終協同合作。分散式的主要工作是分解任務,將職能拆解。
2) 叢集主要的使用場景是為了分擔請求的壓力,也就是在幾個伺服器上部署相同的應用程式,來分擔客戶端請求。
當壓力進一步增大的時候,可能在需要儲存的部分,mysql無法面對很多的寫壓力。因為在mysql做成叢集之後,主要的寫壓力還是在master的機器上面,其他slave機器無法分擔寫壓力,從而這個時候,也就引出來分散式。
分散式的主要應用場景是單臺機器已經無法滿足這種效能的要求,必須要融合多個節點,並且節點之間是相關之間有互動的。相當於在寫mysql的時候,每個節點儲存部分資料,也就是分散式儲存的由來。在儲存一些非結構化資料:靜態檔案、圖片、pdf、小視訊 … 這些也就是分散式檔案系統的由來。
3)叢集主要是簡單加機器解決問題,對於問題本身不做任何分解;
布式處理裡必然包含任務分解與答案歸併。分散式中的某個子任務節點,可能由一個叢集來代替;叢集中任一節點,都是做一個完整的任務。
叢集和分散式都是由多個節點組成,但是叢集之間的通訊協調基本不需要;而分散式各個節點的通訊協調必不可少。
將一套系統拆分成不同子系統部署在不同伺服器上(這叫分散式),然後部署多個相同的子系統在不同的伺服器上(這叫叢集),部署在不同伺服器上的同一個子系統應做負載均衡。
分散式:一個業務拆分為多個子業務,部署在多個伺服器上 。
叢集:同一個業務,部署在多個伺服器上 。
參考:https://www.zhihu.com/question/20004877
瘋狂創客圈 - 分散式實戰社群
- Java (Netty) 聊天程式【 億級流量】實戰 開源專案實戰
- Netty 原始碼、原理、JAVA NIO 原理
- Java 面試題 一網打盡
- 瘋狂創客圈 【 部落格園 總入口 】