2018年,我開始學習和實踐.NET Core,並開始了微服務的學習,以及通過各種開源組件搭建服務治理技術方案,並在學習過程中總結了一個.NET Core微服務學習與實踐系列文章,涵蓋了服務發現、API網關、配置中心、驗證授權、分佈式日誌、性能監控、事件總線等開源項目的使用,還介紹了基於Steeltoe這個開源項目讓.NET Core可以在Spring Cloud框架下共享Spring Cloud帶來便捷的服務治理效果。2019年,我補充和完善了一下這個系列的部分主題,雖然仍然有很多的遺漏和不足,仍然在此總結成目錄分享給各位有需要的初學者朋友!
1 爲何總結和收集此係列
2018年在前公司(簡稱M公司)從原來的Team裏面被抽出來加入了新的Team,開始做Java微服務的開發工作,接觸了Spring Boot, Spring Cloud等技術,對微服務這種架構風格有了一個感性的認識。雖然只做了兩個多月的開發工作,但是對微服務架構的興趣卻沒有結束,又因爲自己的.NET背景(雖然對.NET的生態有點恨鐵不成鋼),想要探索一下在.NET平臺下的微服務架構的可行性,也準備一些材料作爲分享的素材。
幸運的是,在.NET Core首屆在線峯會上,看到了很多前輩的分享,也增強了自己要摸索和實踐.NET Core微服務架構的決心。因此,站在各位前輩的肩膀上(詳見第四部分的學習資料),我學習並總結了這個系列的文章,主要面向有.NET後端開發背景(本系列不會主要講解.NET Core,不過不會阻礙你的閱讀),沒有接觸過或者很少接觸微服務架構的初級開發童鞋,文中介紹的開源技術也不一定是最佳的選擇。
此外,鑑於個人時間和精力有限,以及其他園友在特定領域已經取得的相關學習成果,我收集了一些其他園友的系列文章放在這個目錄裏邊,方便大家快速定位查看學習。
2 服務發現與註冊
3 熔斷與降級
4 API網關
5 統一驗證 & 授權
基於IdentityServer實現驗證與授權服務(Part A)
基於IdentityServer實現驗證與授權服務(Part B)
基於Ocelot+IdentityServer實現統一驗證與授權服務
其他好文
-
IdentityServer4 中文文檔與實戰(曉晨Master,https://www.cnblogs.com/stulzq/p/8119928.html)
-
ASP.NET Core 中的那些認證中間件及一些重要知識點 (楊曉東, https://www.cnblogs.com/savorboard/p/aspnetcore-authentication.html)
-
使用IdentityServer4建立AuthorizationServer系列文章(楊旭, https://www.cnblogs.com/cgzl/default.html?page=11)
-
Swagger如何訪問Ocelot中帶權限驗證的API (桂素偉, https://www.cnblogs.com/axzxs2001/p/9253495.html)
-
Ocelot.JwtAuthorize:一個基於網關的Jwt驗證包 (桂素偉, https://www.cnblogs.com/axzxs2001/p/9250588.html)
6 分佈式追蹤 & 日誌
基於Ocelot+Butterfly實現分佈式追蹤 (Note:推薦使用Skywalking,Buttefly作者Lemon稱已不再維護)
Exceptionless生產環境部署指南(Windows Server版)
Exceptionless 5.0.0 部署指南(Docker版)
其他好文
-
在 ASP.NET Core 中集成 Skywalking APM (楊曉東, https://www.cnblogs.com/savorboard/p/asp-net-core-skywalking.html)
-
Apache SkyWalking 爲.NET Core帶來開箱即用的分佈式追蹤和應用性能監控 (劉浩楊, https://www.cnblogs.com/liuhaoyang/p/skywalking-dotnet-v02-release.html)
-
使用docker-compose 一鍵部署你的分佈式調用鏈跟蹤框架Skywalking (一線碼農, https://www.cnblogs.com/huangxincheng/p/9666930.html)
-
更多Skywalking分享:https://github.com/OpenSkywalking/Community
7 統一性能監控
基於App.Metrics+InfluxDB+Grafana實現統一性能監控
8 事件總線 & 數據一致性
基於MassTransit實現數據最終一致性(Part A)
基於MassTransit實現數據最終一致性(Part B)
其他好文
-
如何在你的項目中集成CAP(手把手視頻教程)(來自CAP作者,微軟MVP,大成都的大佬=>楊曉東, https://www.cnblogs.com/savorboard/p/cap-video-1.html)
9 統一配置中心
10 Docker & DevOps
基於Jenkins Pipeline的ASP.NET Core持續集成實踐
其他好文
-
ASP.NET Core & Docker & Jenkins 零基礎持續集成(來自俺們大成都的大佬—曉晨Master,https://www.cnblogs.com/stulzq/p/8629165.html)
11 與Spring Cloud集成
基於Steeltoe使用Spring Cloud Eureka實現服務註冊與發現
基於Steeltoe集成Spring Cloud Zuul實現統一API網關
基於Steeltoe使用Spring Cloud Hystrix熔斷保護與可視化監控
基於Steeltoe使用Spring Cloud Config統一管理配置
示例代碼:https://github.com/Manulife-Chengdu/Microservice.PoC.Steeltoe
12 eShopOnContainers
下面的文章均來自於一位朋友:聖傑(歡迎關注他的公衆號:微服務知多少)
① eShopOnContainers 知多少[1]:總體概覽
② eShopOnContainers 知多少[2]:Run起來
③ eShopOnContainers 知多少[3]:Identity microservice
④ eShopOnContainers 知多少[4]:Catalog microservice
⑤ eShopOnContainers 知多少[5]: EventBus with RabbitMQ
⑥ eShopOnContainers 知多少[6]:持久化事件日誌
⑦ eShopOnContainers 知多少[7]:Basket microservice
⑧ eShopOnContainers 知多少[8]:Ordering microservice
⑨ eShopOnContainers 知多少[9]:Ocelot gateways
⑩ eShopOnContainers 知多少[10]:部署到 K8S | AKS
參考資料:
楊中科,.NET Core微服務基礎課程
張善友,NanoFabric簡介(DNC在線峯會),NanoFabric
桂素偉,.NET Core微服務課程,基於.NET Core的微服務示例
劉騰飛(Jesse),ASP.NET Core分佈式項目實戰課程
楊波,極客時間課程-微服務架構實戰160講 (此課程主要以Java技術棧講解,但可以學習很多通用的知識點和思想)
Microsoft,.NET微服務:容器化.NET應用架構指南
楊旭,草根專欄 ASP.NET Core Web API索引系列文章