微服務的拆分、設計模式、內部結構
一、微服務拆分
x軸處理並發量問題。 y軸解決業務量問題(微服務)。Z軸解決數據量問題。
微服務的拆分,通常根據 系統層面、業務模塊層面、功能層面、讀寫層面、這四個層面來拆分。
1.系統層面拆分
根據公司具有的業務系統進行拆分。這是最表面,最簡單的拆分。
2.業務模塊層面拆分
業務模塊拆分,是根據業務的名稱和動詞進行拆分。如,對電商系統進行業務模塊層面拆分。
3.功能層面拆分
4.讀寫層面拆分
如果完全按照這四個層面進行拆分,那么微服務將會非常詳細,導致拆分的樹過於復雜龐大。因此,拆分是沒有銀彈的。微服務拆分,可以根據團隊量來決定。一般來說,一個微服務,應該有3個人來維護。如果團隊有12個人,建議將系統拆分成4個微服務。總的來說,服務拆分,應根據公司投入的人力成本。人力成本越多,服務拆分可足夠細致。微服務架構設計時,要足夠靈活、保證其可擴展性。
二、微服務架構設計模式
以團隊管理系統為例 展開說明。
聚合器設計模式
這種設計的特點是 設計簡單,性能高效。且解耦、擴展。如果是前后端分離,聚合服務就是各個服務接口功能和業務邏輯。如果前后端沒有分離,每個聚合服務,可以是每個頁面。
三、微服務內部結構
微服務架構設計,首先就要選擇微服務的內部結構。通常其內部結構有如下兩種方式:
第一種微服務結構,往往使用webapi,開發平台是.net5或者.netcore。如果想使用跨語言來開發(同時使用多種語言開發微服務,如同時使用java和.net5),則選用第二種。第二種比第一種的通信性能高。這里我們使用第一種。