分佈式、集羣和微服務概念整理

整理來源於 https://www.cnblogs.com/xishuai/p/6039838.htmlhtml

集羣是個物理形態,分佈式是個工做方式。服務器

  • 分佈式:一個業務分拆多個子業務,部署在不一樣的服務器上
  • 集羣:同一個業務,部署在多個服務器上

1:分佈式是指將不一樣的業務分佈在不一樣的地方。而集羣指的是將幾臺服務器集中在一塊兒,實現同一業務。架構

分佈式中的每個節點,均可以作集羣。而集羣並不必定就是分佈式的。併發

舉例:就好比新浪網,訪問的人多了,他能夠作一個羣集,前面放一個響應服務器,後面幾臺服務器完成同一業務,若是有業務訪問的時候,響應服務器看哪臺服務器的負載不是很重,就將給哪一臺去完成。負載均衡

而分佈式,從窄意上理解,也跟集羣差很少,可是它的組織比較鬆散,不像集羣,有一個組織性,一臺服務器垮了,其它的服務器能夠頂上來。分佈式

分佈式的每個節點,都完成不一樣的業務,一個節點垮了,那這個業務就不可訪問了。微服務

2:簡單說,分佈式是以縮短單個任務的執行時間來提高效率的,而集羣則是經過提升單位時間內執行的任務數來提高效率。高併發

例如:若是一個任務由 10 個子任務組成,每一個子任務單獨執行需 1 小時,則在一臺服務器上執行該任務需 10 小時。oop

採用分佈式方案,提供 10 臺服務器,每臺服務器只負責處理一個子任務,不考慮子任務間的依賴關係,執行完這個任務只需一個小時。(這種工做模式的一個典型表明就是 Hadoop 的 Map/Reduce 分佈式計算模型)網站

而採用集羣方案,一樣提供 10 臺服務器,每臺服務器都能獨立處理這個任務。假設有 10 個任務同時到達,10 個服務器將同時工做,1 小時後,10 個任務同時完成,這樣,整身來看,仍是 1 小時內完成一個任務!


好的設計應該是分佈式和集羣的結合,先分佈式再集羣,具體實現就是業務拆分紅不少子業務,而後針對每一個子業務進行集羣部署,這樣每一個子業務若是出了問題,整個系統徹底不會受影響。

微服務是一種架構風格,一個大型複雜軟件應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是鬆耦合的。每一個微服務僅關注於完成一件任務並很好地完成該任務。在全部狀況下,每一個任務表明着一個小的業務能力。

分佈式:分散壓力。微服務:分散能力。

  • 分佈式:
    • 不一樣模塊部署在不一樣服務器上
    • 做用:分佈式解決網站高併發帶來問題
  • 集羣:相同的服務
    • 多臺服務器部署相同應用構成一個集羣
    • 做用:經過負載均衡設備共同對外提供服務
相關文章
相關標籤/搜索