1. 程式人生 > >集群,分布式,微服務,SOA概念

集群,分布式,微服務,SOA概念

提升 應該 外觀模式 com ESS 服務架構 切換 領域 建模

概念:

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

1:分布式是指將不同的業務分布在不同的地方。而集群指的是將幾臺服務器集中在一起,實現同一業務。

分布式中的每一個節點,都可以做集群。

如:新浪網,訪問的人多了,它就可以做一個集群,前面放一個相應服務器,後面幾臺服務器共同完成一個業務,如果業務訪問的時候,相應服務器根據負載均衡,去分配服務器。

分布式的每一個節點,都完成不同的業務,一個節點垮了,那這個業務就不可以訪問了。

2、簡單來說,分布式是以縮短單個任務的執行時間來提升效率的,而集群則是通過提高單位時間內執行的任務數來提升效率。

例如:如果一個任務由10個子任務組成,每個子任務執行需呀1小時。則在一臺服務器上執行完這一個任務就需要10個小時。利用分布式方案,則提供10臺服務器,每個服務器只負責一個子任務的執行,這樣總共就只需要1個小時。而集群就是,同樣給10臺服務器,每臺服務器都部署一樣的任務。這樣當有10個任務來的時候,平均下來也就是一個小時完成一個任務。

好的設計應該是分布式和集群的結合,先分布再集群,具體實現就是業務拆分成多個子業務,再對每個子業務進行集群部署。

區別:

1.分布式

技術分享圖片

將一個大的系統劃分為多個業務模塊,業務模塊分別部署到不同的機器上,各個業務模塊通過接口進行數據交互

註:分布式需要做好事務管理 。

2.集群模式

技術分享圖片

集群模式是不同服務器部署同一套服務對外訪問,實現服務的負載均衡。

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

一般配置Nginx*的負載容器實現:靜態資源緩存、Session共享可以附帶實現,Nginx支持5000個並發量。

3.分布式是否屬於微服務?

微服務與分布式的細微差別是,微服務的應用不一定是分散在多個服務器上,他也可以是同一個服務器。

4.微服務架構與SOA架構的區別

首先SOA和微服務架構一個層面的東西,而對於ESB和微服務網關是一個層面的東西,一個談到是架構風格和方法,一個談的是實現工具或組件。

1.SOA(Service Oriented Architecture)“面向服務的架構”:他是一種設計方法,其中包含多個服務, 服務之間通過相互依賴最終提供一系列的功能。一個服務 通常以獨立的形式存在與操作系統進程中。各個服務之間 通過網絡調用。

2.微服務架構:其實和 SOA 架構類似,微服務是在 SOA 上做的升華,微服務架構強調的一個重點是“業務需要徹底的組件化和服務化”,原有的單個業務系統會拆分為多個可以獨立開發、設計、運行的小應用。這些小應用之間通過服務完成交互和集成。

微服務架構 = 80%的SOA服務架構思想 + 100%的組件化架構思想 + 80%的領域建模思想

2.ESB和微服務API網關。

1.ESB(企業服務總線),簡單 來說 ESB 就是一根管道,用來連接各個服務節點。為了集 成不同系統,不同協議的服務,ESB 做了消息的轉化解釋和路由工作,讓不同的服務互聯互通;

技術分享圖片

2.API網關:API網關是一個服務器,是系統的唯一入口。從面向對象設計的角度看,它與外觀模式類似。API網關封裝了系統內部架構,為每個客戶端提供一個定制的API。它可能還具有其它職責,如身份驗證、監控、負載均衡、緩存、請求分片與管理、靜態響應處理。API網關方式的核心要點是,所有的客戶端和消費端都通過統一的網關接入微服務,在網關層處理所有的非業務功能。通常,網關也是提供REST/HTTP的訪問API。服務端通過API-GW註冊和管理服務。

技術分享圖片

集群,分布式,微服務,SOA概念