1. 程式人生 > >分散式、微服務與叢集的區別

分散式、微服務與叢集的區別

一、分散式

 不同模組部署在不同伺服器上。

作用:分散式解決網站高併發帶來問題。

將一個大的系統劃分為多個業務模組,業務模組分別部署到不同的機器上,各個業務模組之間通過介面進行資料互動。區別分散式的方式是根據不同機器不同業務。

上面:service A、B、C、D 分別是業務元件,通過API Geteway進行業務訪問。

 注意:分散式需要做好事務管理。

二、微服務

  架構設計概念,各服務間隔離(分散式也是隔離),自治(分散式依賴整體組合)其它特性(單一職責,邊界,非同步通訊,獨立部署)是分散式概念的跟嚴格執行SOA到微服務架構的演進過程 。
作用:各服務可獨立應用,組合服務也可系統應用。

  微服務的設計是為了不因為某個模組的升級和BUG影響現有的系統業務。微服務與分散式的細微差別是,微服務的應用不一定是分散在多個伺服器上,它也可以是同一個伺服器。

三、叢集

多臺伺服器部署相同應用構成一個叢集。

作用:通過負載均衡裝置共同對外提供服務。

 

叢集模式是不同伺服器部署同一套服務對外訪問,實現服務的負載均衡。區別叢集的方式是根據部署多臺伺服器業務是否相同。

注意:叢集模式需要做好session共享,確保在不同伺服器切換的過程中不會因為沒有獲取到session而中止退出服務。

一般配置Nginx的負載容器實現:靜態資源快取、Session共享可以附帶實現,Nginx支援5000個併發量。