簡介
在《Abp vNext微服務實踐》系列文章中筆者逐一介紹了ABP微服務架構實踐應用的過程,但是由於微服務架構過於復雜且配置十分繁瑣,讀者在親自體驗中往往不太順利。在本章系列中我將基於ABP微服務架構重新整理構建更輕量實用的微服務,此外我還會會搭配多種微服務組合方式以提高大家對ABP微服務的理解,構建過程中我會將代碼發布至GitHub。
本章系列只是將ABP微服務架構進行重新組合搭建,並不會修改ABP任何應用模塊代碼,也不會違背ABP設計原則,重構的目的只是為了讓大家更好的理解微服務拆分,重構后微服務會更加輕量化可以開箱即用。
架構方案
ABP架構是基於DDD設計,基於模塊化實現,所以使用ABP搭建微服務是十分靈活的,目前我會介紹兩種架構方案。這兩種方案均是基於ABP設計原理,大家可以根據喜好選擇一種架構嘗試,也可以根據本系列文章的分析和自己理解自主搭建。
基於ABP應用模塊的服務和若干個基於ABP的微服務
這種模式實際上和ABP微服務架構是一致的,在這種模式中我會對ABP應用層逐一構建成微服務發布,並且這些微服務將有獨立的解決方案。架構圖如下:
架構分析
- 網關服務:基於Ocelot提供所有微服務API接口聚合、限流、熔斷等功能,此外網關還提供權限聚合服務。
- 授權服務:為所有客戶端(client)提供身份授權,給所有微服務包括網關提供身份認證。
- ABP用戶服務:實現ABP用戶模塊功能。
- ABP租戶服務:實現ABP租戶模塊功能。
- 其他微服務:實現各自業務。
基於ABP基礎服務和若干個基於ABP的微服務
這種模式是將ABP所有應用(用戶、租戶等)聚集在ABP基礎服務中提供統一的租戶、用戶、權限管理。
架構分析
- 網關服務:基於Ocelot提供聚合所有微服務API接口、限流、熔斷等功能,不提供權限聚合服務。
- ABP基礎服務:實現ABP租戶、用戶、權限等ABP應用模塊功能,此外基礎服務還提供權限聚合功能。
- 授權服務、其他微服務:同上。
服務發現、服務治理
ABP微服務架構中直接使用網關配置文件直接微服務地址,所以實際上ABP微服務是不需要發現服務的。可能大家會覺得配置服務地址的方式不太靈活,但是對於初試微服務者來說可以大大避坑,其實個人覺得服務發現也並不太靠譜。
服務治理大家可以根據需要在微服務中集成性能監測中間件,也可以嘗試使用k8s進行管理。
系列文章
在本系列中,我會以更直接的方式呈現ABP微服務搭建全過程,並且會及時發布代碼,以下是系列文章完成的目錄。
方案一
- 《[從0到1搭建ABP微服務] - 搭建授權服務》 【點擊查看】
- 《[從0到1搭建ABP微服務] - 搭建ABP用戶管理服務》 【點擊查看】
- 《[從0到1搭建ABP微服務] - 搭建ABP租戶管理服務》 【點擊查看】
- 《[從0到1搭建ABP微服務] - 搭建Business微服務》 【點擊查看】
- 《[從0到1搭建ABP微服務] - 搭建網關服務》 【點擊查看】
- 《[從0到1搭建ABP微服務] - 搭建內部網關》 【點擊查看】
- 《[從0到1搭建ABP微服務] - 啟動》 【點擊查看】
最后
本系列介紹ABP微服務搭建過程主要是以方便大家更加簡單的嘗試ABP微服務為目標,在系列之外我會介紹許多數據庫、架構、大數據處理和web開發等技術總結,喜歡的小伙伴推薦關注一波吧~
QQ群:1083795392