微服務架構核心(三)- 微服務技術架構體系
微服務架構的名字裡雖然有個"微",但它涉及的整體架構體系可一點也不"微",微服務架構除了業務程式碼的開發以外,還需要很多的支撐服務。
每個公司都有自己的微服務架構體系,雖然在細節上有很多不同,但是整體的思路是類似的,下圖展示了一個比較成熟的微服務架構體系。
這個體系按照請求接入,由外到內的順序,將整體架構分為接入層、閘道器層、業務服務層、支撐服務層、平臺服務層和基礎設施層六層。
接入層
最外層是接入層,通過負載均衡接入請求到內部平臺,這些請求既有外部網際網路請求,也有公司內部其它系統的請求。
閘道器層
閘道器層是微服務架構的核心層,是業務層接收外部流量的屏障。
閘道器層的主要作用:
- 對接入的流量進行反向路由。
- 攔截所有的請求,通過橫切的方式完成熔斷、限流、安全認證等功能。
- 對請求進行分類,例如內部閘道器、H5閘道器、圖片閘道器。
業務服務層
我們常說的微服務就集中在這一層,這裡包含了系統核心的業務邏輯。業務服務層可以簡單的劃分為聚合層與基礎層。
基礎層提供單一簡單的基礎服務,例如人員、訂單、支付。聚合層則是將不同的基礎層聚合在一起,完成複雜的業務處理。
支撐服務層
支撐服務層提供非業務功能,以支撐業務服務層和閘道器層軟體的正常執行。
核心模組有服務註冊發現、集中配置、容錯限流、認證授權、日誌聚合、監控告警、後臺中介軟體(非同步佇列、快取、資料庫、任務排程)
平臺服務層
平臺服務層站在系統平臺的角度上,處理系統釋出、資源排程整合等功能。
核心模組有釋出系統、資源排程、容器映象治理、資源治理、IAM。
基礎設定層
這一層與軟體關係不大,主要是支撐系統需要的硬體資源,包括計算、網路、儲存、監控、安全、IDC等。
縱向能力
除了橫向區分的六個層次以外,微服務中還有一些縱向能力需要我們關注。
例如微服務開發框架,提供標準的開發框架規範開發過程,統一開發標準。
持續交付流水線,提供從研發到測試,再到生產的持續交付能力。
另外還有提升研發、測試效率的端到端的工具鏈,平常不斷積累的工程實踐以及規範等。
總結
微服務架構涉及功能模組眾多,並不是每一個公司都有能力搭建一套完整的微服務架構。
當我們從零開始搭建微服務架構時,可以優先考慮閘道器層、業務服務層以及支撐服務層中的註冊發現、集中配置、認證授權這些核心功能,其它的功能模組再逐步完善。
另外我們也可以選用已經比較成熟的架構來快速搭建微服務,例如SpringCloud。
最後大家可以結合文章的架構圖思考一下,自己公司目前的微服務架構,已經具備了圖中的哪些功能,還有哪些功能是可以進一步完善或者新增的?