自我理解集中式架構,垂直拆分,分散式服務,服務治理,微服務
自我理解集中式架構,垂直拆分,分散式服務,服務治理,微服務
- 集中式架構
- 垂直拆分
- 分散式服務
- 服務治理
- 微服務
1 集中式架構
a.是什麼:
單一程式,一個應用,將所有功能都部署在一起
b.應用場景:
網站流量很小時
c.優點:
減少部署節點和成本
d.缺點:
程式碼耦合,開發維護困難
無法針對不同模組進行鍼對性優化
無法水平擴充套件
單點容錯率低,併發能力差
2 垂直拆分
a.是什麼:
根據業務功能將系統拆分成多個程式
b.應用場景:
訪問量較大時,高併發情況
c.優點:
系統拆分實現了流量分擔,解決了併發問題
可以針對不同模組進行優化
方便水平擴充套件,負載均衡,
容錯率提高(叢集) 系統間相互獨立
d.缺點:
會有很多重複開發工作,影響開發效率
搭建叢集之後,實現負載均衡比較複雜
服務之間相互呼叫,如果某個服務的埠或者ip地址發生改變,呼叫的系統得手動改變
3 分散式服務
e.是什麼:
將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應各種需求
f.應用場景:
應用之間複雜互動
g.優點:
將基礎服務進行了抽取,系統間相互呼叫,提高了程式碼複用和開發效率
h.缺點:
系統間耦合度變高,呼叫關係錯綜複雜,難以維護
搭建叢集之後,負載均衡比較難實現
4 服務治理
是什麼:
基於訪問壓力實時管理叢集容量,提高叢集利用率
主要功能:
服務註冊中心,實現服務自動註冊和發現,無需人為記錄服務地址
服務自動訂閱,服務列表自動推送,服務呼叫透明化,無需關心依賴關係
動態監控服務狀態監控報告,人為控制服務狀態
應用場景:
用於提高機器利用率
使用原因:
服務越來越多,需要管理每個服務的地址
呼叫關係錯綜複雜,難以理清依賴關係
服務過多,服務狀態難以管理,無法根據服務情況動態管理
缺點:
服務間會有依賴關係,一旦某個環節出錯會影響較大
服務關係複雜,運維、測試部署困難
5 微服務
i.是什麼:
將單個需求模組作為一套小型服務來開發,每種應用程式都在自己的程序中執行
j.特點:
單一職責,細粒度:微服務中每一個服務都對應唯一的業務能力,做到單一職責 (每個服務是針對一個單一的業務的模組,專注做好一件事情。)
面向服務:每個服務都要對外暴露服務介面API
獨立自治:獨立部署執行,服務間互相獨立,互不干擾
k.應用場景:
訪問量的較大,子功能模組數量較多,呼叫依賴關係複雜
l.優點:
根據不同服務對系統資源的要求不同,我們可以更合理的配置系統資源,使系統資源利用率最大化。
每個服務都是獨立的元件,可複用,可替換,降低耦合,易維護