.NET Core微服務系列基礎文章索引(目錄導航Final版)
一、為啥要總結和收集這個系列?
今年從原來的Team裡面被抽出來加入了新的Team,開始做Java微服務的開發工作,接觸了Spring Boot, Spring Cloud等技術棧,對微服務這種架構有了一個感性的認識。雖然只做了兩個月的開發工作,但是對微服務架構的興趣卻沒有結束,又因為自己的.NET背景(雖然對.NET的生態有點恨鐵不成鋼),想要探索一下在.NET平臺下的微服務架構的可行性,也準備一些材料作為分享的素材。
幸運的是,在 ofollow,noindex">.NET Core首屆線上峰會 上,看到了很多前輩的分享,也增強了自己要摸索和實踐.NET Core微服務架構的決心。因此,站在各位前輩的肩膀上(詳見第四部分的學習資料),我學習並總結了這個系列的文章,主要面向有.NET Web開發背景(本系列不會主要講解.NET Core,不過不會阻礙你的閱讀),沒有接觸過或者很少接觸微服務架構的初級開發童鞋,文中介紹的開源技術也不一定是最佳的選擇,事實上混合式架構(Linux+Windows+開源組合)與Docker+K8S的組合已經成了現在主流企業級和網際網路專案的(預設)標準,重點是大家轉變這個思路,擁抱Open Source,擁抱Cloud,也擁抱.NET Core,才會讓.NET的生態好起來。魯迅先生說,“ 世上本無路,走的人多了也就成了路 ”,對於.NET生態也一樣,只有我們擁抱的人(這裡主要指使用.NET相關開源技術的人)多了,也才會有好的生態,特與君共勉。當然,這裡並不是說要抱死.NET,或者鼓吹.NET多麼好,沒有絕對好的技術棧,只有剛剛好的業務需求,愛.NET Core,也不排斥Java等其他技術棧,相互合作,共同構建,脫離微軟(這裡指廣義上的老一代微軟全家桶:ASP.NET+MSSQL+WindowsServer等),擁抱開源,任重而道遠!
此外,鑑於個人時間和精力有限,以及其他園友在特定領域已經取得的相關學習成果,我還會 不定期收集一些其他園友的系列文章放在這個索引裡邊 ,方便大家快速定位檢視學習。
最後,由於個人的職業規劃,我即將離開現在的公司(當然,並不是說現在的公司不好,而是個人對.NET的初戀情結)去一家新的公司去實踐.NET Core,使用開源技術(有可能會給園子裡的開源專案提Issue,也盡力積極提PR),實踐微服務,實踐架構設計,後續也會實踐大資料,去經歷一些之前經歷不到的路程,也希望可以在後續分享一些 實踐系列的文章 到部落格園。如果有成都地區的園友想要來實踐.NET Core的,也可以聯絡我,我司也在招聘優秀的.NET程式猿來 一起搞事情 。
二、重點內容索引
2.1 服務發現&註冊&通訊
服務間的通訊呼叫方式(REST and RPC)
2.2 熔斷&降級
2.3 API閘道器
2.4 統一驗證&授權
基於IdentityServer實現授權與驗證服務(Part 1)
基於IdentityServer實現授權與驗證服務(Part 2)
基於Ocelot+IdentityServer實現統一驗證與授權服務
其他好文:
IdentityServer4 中文文件與實戰 (from 曉晨Master 李志強)
ASP.NET Core 中的那些認證中介軟體及一些重要知識點 (from savorboard 楊曉東)
使用IdentityServer4建立AuthorizationServer系列文章 (from 草根專欄 楊旭)
Swagger如何訪問Ocelot中帶許可權驗證的API (from axzxs2001 桂素偉)
Ocelot.JwtAuthorize:一個基於閘道器的Jwt驗證包 (from axzxs2001 桂素偉)
2.5 分散式追蹤&日誌
Skywalking:
在 ASP.NET Core 中整合 Skywalking APM (from savorboard 楊曉東)
Apache SkyWalking 為.NET Core帶來開箱即用的分散式追蹤和應用效能監控 (from Lemon 劉浩楊)
使用docker-compose 一鍵部署你的分散式呼叫鏈跟蹤框架Skywalking (from 一線碼農 黃星辰)
更多Skywalking分享 : https://github.com/OpenSkywalking/Community
2.6 統一效能監控
基於App.Metrics+InfluxDB+Grafana實現統一效能監控
2.7 資料一致性&事件匯流排
基於MassTransit實現資料最終一致性(Part 1)
基於MassTransit實現資料最終一致性(Part 2)
CAP:
如何在你的專案中整合CAP(手把手視訊教程) (from savorboard 楊曉東)
2.8 統一配置中心
2.9 Docker & CI/CD
ASP.NET Core on Docker (部署ASP.NET Core到Docker)
基於Jenkins+Docker實現持續部署(Part 1)
基於Jenkins+Docker實現持續部署(Part 2) (正在編寫中ing...)
其他好文:
ASP.NET Core & Docker & Jenkins 零基礎持續整合 (from 曉晨Master 李志強)
2.10 與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
2.11 eShopOnContainers架構分析
《.NET微服務:容器化.NET應用架構指南》學習筆記 (正在編寫中ing...)
下面的系列文章來自一位朋友:聖傑
① eShopOnContainers 知多少[1]:總體概覽
② eShopOnContainers 知多少[2]:Run起來
2.12 其他
下面的系列文章來自一位園友:曹劍,這個系列文章把微服務的最重要的內容過了一遍。
① 微服務實戰(一):落地微服務架構到直銷系統(什麼是微服務)
② 微服務實戰(二):落地微服務架構到直銷系統(構建訊息匯流排框架介面)
③ 微服務實戰(三):落地微服務架構到直銷系統(構建基於RabbitMq的訊息匯流排)
④ 微服務實戰(四):落地微服務架構到直銷系統(將生產者與消費者接入訊息匯流排)
⑤ 微服務實戰(五):落地微服務架構到直銷系統(構建高效能大併發系統)
⑦ 微服務實戰(七):落地微服務架構到直銷系統(實現命令與命令處理器)
⑧ 微服務實戰(八):落地微服務架構到直銷系統(服務高可用性)
三、學習資料
這裡分享一些學習.NET Core與微服務的學習資料:
① 楊中科, .NET Core微服務基礎課程
② 張善友, NanoFabric簡介(DNC線上峰會) ,NanoFabric GitHub: https://github.com/geffzhang/NanoFabric
③ 桂素偉, .NET Core微服務課程 ,基於.NET Core的微服務示例 GitHub: https://github.com/axzxs2001/HisMicroserviceSample
④ 劉騰飛(Jesse), ASP.NET Core分散式專案實戰課程
⑤ 楊波,極客時間課程- 微服務架構實戰160講 (此課程主要以Java技術棧講解,但可以學習很多通用的知識點和思想)
⑥ Microsoft, .NET微服務:容器化.NET應用架構指南 (建議想要應用.NET Core微服務架構的童鞋 必讀 此書),示例專案eShopOnContainers GitHub: https://github.com/dotnet-architecture/eShopOnContainers
......
除此之外,每篇文章後面都有參考資料,也都是值得學習的資料。
四、其他拓展
下面列兩個基於Java技術棧的微服務框架學習示例,都是由我完整學習過的示例總結:
① Spring Boot 1.5.x 基礎學習示例