1. 程式人生 > >自我理解集中式架構,垂直拆分,分散式服務,服務治理,微服務

自我理解集中式架構,垂直拆分,分散式服務,服務治理,微服務

自我理解集中式架構,垂直拆分,分散式服務,服務治理,微服務

  1. 集中式架構
  2. 垂直拆分
  3. 分散式服務
  4. 服務治理
  5. 微服務

1 集中式架構

a.是什麼:

單一程式,一個應用,將所有功能都部署在一起

b.應用場景:

網站流量很小時

c.優點:

減少部署節點和成本

d.缺點:

程式碼耦合,開發維護困難
無法針對不同模組進行鍼對性優化
無法水平擴充套件
單點容錯率低,併發能力差

2 垂直拆分

a.是什麼:

根據業務功能將系統拆分成多個程式

b.應用場景:

訪問量較大時,高併發情況

c.優點:

系統拆分實現了流量分擔,解決了併發問題
可以針對不同模組進行優化
方便水平擴充套件,負載均衡,
容錯率提高(叢集) 系統間相互獨立

d.缺點:

會有很多重複開發工作,影響開發效率
搭建叢集之後,實現負載均衡比較複雜
服務之間相互呼叫,如果某個服務的埠或者ip地址發生改變,呼叫的系統得手動改變

3 分散式服務

e.是什麼:

將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應各種需求

f.應用場景:

應用之間複雜互動

g.優點:

將基礎服務進行了抽取,系統間相互呼叫,提高了程式碼複用和開發效率

h.缺點:

系統間耦合度變高,呼叫關係錯綜複雜,難以維護
搭建叢集之後,負載均衡比較難實現

4 服務治理

是什麼:

基於訪問壓力實時管理叢集容量,提高叢集利用率

主要功能:

服務註冊中心,實現服務自動註冊和發現,無需人為記錄服務地址
服務自動訂閱,服務列表自動推送,服務呼叫透明化,無需關心依賴關係
動態監控服務狀態監控報告,人為控制服務狀態

應用場景:

用於提高機器利用率

使用原因:

服務越來越多,需要管理每個服務的地址
呼叫關係錯綜複雜,難以理清依賴關係
服務過多,服務狀態難以管理,無法根據服務情況動態管理

缺點:

服務間會有依賴關係,一旦某個環節出錯會影響較大
服務關係複雜,運維、測試部署困難

5 微服務

i.是什麼:

將單個需求模組作為一套小型服務來開發,每種應用程式都在自己的程序中執行

j.特點:

單一職責,細粒度:微服務中每一個服務都對應唯一的業務能力,做到單一職責 (每個服務是針對一個單一的業務的模組,專注做好一件事情。)
面向服務:每個服務都要對外暴露服務介面API
獨立自治:獨立部署執行,服務間互相獨立,互不干擾

k.應用場景:

訪問量的較大,子功能模組數量較多,呼叫依賴關係複雜

l.優點:

根據不同服務對系統資源的要求不同,我們可以更合理的配置系統資源,使系統資源利用率最大化。
每個服務都是獨立的元件,可複用,可替換,降低耦合,易維護

m.缺點: