1. 程式人生 > >分散式、叢集、和微服務的理解

分散式、叢集、和微服務的理解

首先來說下概念

叢集是個物理形態,分散式是個工作方式。

  • 分散式:一個業務分拆多個子業務,部署在不同的伺服器上
  • 叢集:同一個業務,部署在多個伺服器上

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

這裡呢我用一個電商網站舉例說明

分散式:將電商專案的圖片檔案等單獨存一個伺服器,資料庫單獨一個伺服器,redis單獨放在一個伺服器上,將單個專案拆分開來縮短執行單個任務的時間來提高效率這就是分散式。

叢集:當以上單個專案採用分散式也達到伺服器的範圍極限時(假設每臺都達到極限),我們就要複製上面的專案,也就是上面我們一個專案用了4臺伺服器,現在如果再複製一份就是8臺伺服器,以此類推,當然這裡要考慮資料統一性。以4臺為單元,這些伺服器就是叢集,叢集是提高在特定時間內執行任務數來提高效率。

微服務:假設這個商城原先是用php寫的,現在這個網站很大了,將要做一個遊戲贏積分模組,但是不希望遊戲模組崩掉過後影響使用者購買商品。那我們就單獨開一個伺服器用java或者其他語言(包括php),新開一個專案。他們之間統一使用者認證,然後互相提供介面就行了,有一臺遊戲的伺服器掛掉了,不影響使用者購買商品,這就是微服務。

其實分散式和微服務的概念有些模糊,個人認為微服務是分散式細分出來的概念