ABP vNext微服务架构详细教程——架构介绍
總體架構
所有應用服務、API網關、身份認證服務均部署在Kubernetes容器中,由Kubernetes提供應用配置、服務治理、服務監控等功能。
客戶端所有訪問均通過Kubernetes的Nginx-Ingress接入服務集群,并由API網關負責路由匹配和身份認證后轉發至相應的應用服務處理。應用微服務中不需要二次做身份認證。
身份認證服務用戶登錄、驗證的相關接口。所有請求只在網關做身份認證,下層服務不需要做二次身份認證。
數據庫、緩存、日志服務等服務建議部署于獨立的服務器上,按需求也可以部署于容器中。
具體架構如下圖:
分層架構
這里我們主要講述服務端,服務分層架構如下:
網關層作為業務服務的總出入口,所有服務調用均需要通過API網關。這里我們使用.Net Core中常用的Ocelot網關
身份認證服務我們采用ABP vNext框架模板提供的身份服務模塊,其核心為封裝了IdentityServer4.0框架用于提供OAuth2.0協議各種接口。身份認證服務所需數據直接來自數據庫或緩存。
聚合服務層主要用于聚合、調度服務層一個或多個微服務。客戶端訪問的所有接口(除身份認證服務接口以外)均由聚合服務層提供。應用層服務不直接訪問數據庫,而是通過調用服務層對應服務實現數據操作。通常我們做詳細的接口權限管理,也是應用層接口與權限做對應。應用層服務我們采用WebApi+ABP vNext框架實現。
基礎服務層,建議依據領域驅動設計思想劃分,每個領域設計為一個微服務。該層服務提供具體的領域模型、領域業務的實現。通常每個微服務對應一個數據庫,通過倉儲實現數據庫操作。基礎服務層服務不直接提供客戶端訪問接口,收到請求時也不需要做身份認證、鑒權處理。這里我把基礎服務層服務分為兩類:第一種是身份管理服務,負責用戶角色權限管理,使用ABP vNext框架Application模板構建;第二種是其他業務微服務,提供用戶角色權限管理以外的其他業務功能,使用ABP vNext框架Module模式構建。
數據庫這里我們采用MySQL、緩存這里采用Redis、日志服務采用Elasticsearch+Logstash+Kibana(ELK)。
具體服務圖中服務劃分以Demo為例,實際開發中請依據各自項目實際需求對服務進行拆分設計。
由于Demo中設計的應用場景相對簡單,更多技術及ABP框架詳細用法請參考ABP官方文檔。
總結
以上是生活随笔為你收集整理的ABP vNext微服务架构详细教程——架构介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DispatcherCore ,一个WP
- 下一篇: ABP vNext微服务架构详细教程——