.NET Core 微服(fu)務架(jia)構學習與實踐(jian)系列(lie)文章目錄
一、為啥要總結和收集這個系列?
2018年(nian)離開(kai)(kai)了(le)原來(lai)的(de)(de)Team加入了(le)新的(de)(de)Team,開(kai)(kai)始做(zuo)Java微(wei)(wei)服(fu)務(wu)的(de)(de)開(kai)(kai)發工作,接觸了(le)Spring Boot, Spring Cloud等技(ji)術棧,對(dui)微(wei)(wei)服(fu)務(wu)這種(zhong)架(jia)構有了(le)一個感(gan)性的(de)(de)認識。雖(sui)然只做(zuo)了(le)兩個月的(de)(de)Java開(kai)(kai)發工作,但是對(dui)微(wei)(wei)服(fu)務(wu)架(jia)構的(de)(de)興趣卻沒有結束,又因為自己的(de)(de).NET背景(雖(sui)然對(dui).NET的(de)(de)生態(tai)有點(dian)恨鐵(tie)不成鋼),想要探索一下(xia)在.NET平臺(tai)下(xia)的(de)(de)微(wei)(wei)服(fu)務(wu)架(jia)構的(de)(de)可行(xing)性,也準備一些材料作為分享的(de)(de)素材。

幸運的是,在上,看到了很多前輩的分享,也增強了自己要摸索和實踐.NET Core微服務架構的決心。因此,站在各位前輩的肩膀上(詳見第四部分的學習資料),我學習并總結了這個系列的文章,主要面向有.NET Web開發背景(本系列不會主要講解.NET Core,不過不會阻礙你的閱讀),沒有接觸過或者很少接觸微服務架構的初級開發童鞋,文中介紹的開源技術也不一定是最佳的選擇,事實上混合式架構(Linux+Windows+開源組合)與Docker+K8S的組合已經成了現在主流企業級和互聯網項目的(默認)標準,重點是大家轉變這個思路,擁抱Open Source,擁抱Cloud,也擁抱.NET Core,才會讓.NET的生態好起來。魯迅先生說,“世上本無路,走的人多了也就成了路”,對于.NET生(sheng)態(tai)也(ye)一樣(yang),只(zhi)(zhi)有我們擁(yong)抱的(de)人(這(zhe)里(li)主要(yao)指使用.NET相關(guan)開源技術的(de)人)多了,也(ye)才會有好(hao)(hao)的(de)生(sheng)態(tai),特與君共(gong)勉。當然(ran),這(zhe)里(li)并不(bu)是(shi)說要(yao)抱死.NET,或者鼓吹.NET多么好(hao)(hao),沒有絕對好(hao)(hao)的(de)技術棧,只(zhi)(zhi)有剛剛好(hao)(hao)的(de)業(ye)務(wu)需求(qiu),愛.NET Core,也(ye)不(bu)排斥(chi)Java等其他技術棧,相互合作,共(gong)同構建,脫離(li)微軟(這(zhe)里(li)指廣義(yi)上的(de)老一代微軟全家桶(tong):ASP.NET+MSSQL+WindowsServer等),擁(yong)抱開源,任(ren)重而道(dao)遠!
此外,鑒于個人時間和精力有限,以及其他園友在特定領域已經取得的相關學習成果,我還會不定期收集一些其他園友的系列文章放在這個索引里邊,方便(bian)大家快速定位(wei)查(cha)看學習。
最后,由于個人的職業規劃,我即將離開現在的公司(當然,并不是說現在的公司不好,而是個人對.NET的初戀情結)去一家新的公司去實踐.NET Core,使用開源技術(有可能會給園子里的開源項目提Issue,也盡力積極提PR),實踐微服務,實踐架構設計,后續也會實踐大數據,去經歷一些之前經歷不到的路程,也希望可以在后續分享一些實踐系列的文章到博客園。如果有成都地區的園友想要來實踐.NET Core的,也可以聯系我,我司也在招聘優秀的.NET程序猿來一起搞事情。
二、重點內容索引
2.1 服務發現&注冊&通信
2.2 熔斷&降級
2.3 API網關
2.4 統一驗證&授權
基于IdentityServer實現授權與驗證服務(Part 1)
基于IdentityServer實現授權與驗證服務(Part 2)
基于Ocelot+IdentityServer實現統一驗證與授權服務
其他好文:
IdentityServer4 中文文檔與實戰(from 曉晨Master 李志(zhi)強(qiang))
ASP.NET Core 中的那些認證中間件及一些重要知識點 (from savorboard 楊(yang)曉東(dong))
使用IdentityServer4建立AuthorizationServer系列文章(from 草(cao)根專欄 楊旭)
Swagger如何訪問Ocelot中帶權限驗證的API (from axzxs2001 桂素偉)
Ocelot.JwtAuthorize:一個基于網關的Jwt驗證包 (from axzxs2001 桂(gui)素偉)
2.5 分布式追蹤&日志
Exceptionless 5.0.0 Docker快速部署指南
Skywalking:
在 ASP.NET Core 中集成 Skywalking APM (from savorboard 楊曉東)
Apache SkyWalking 為.NET Core帶來開箱即用的分布式追蹤和應用性能監控 (from Lemon 劉(liu)浩(hao)楊)
使用docker-compose 一鍵部署你的分布式調用鏈跟蹤框架Skywalking (from 一線碼農 黃星辰)
更多Skywalking分享:
2.6 統一性能監控
基于App.Metrics+InfluxDB+Grafana實現統一性能監控
2.7 數據一致性&事件總線
基于MassTransit實現數據最終一致性(Part 1)
基于MassTransit實現數據最終一致性(Part 2)
CAP:
如何在你的項目中集成CAP(手把手視頻教程)(from savorboard 楊(yang)曉(xiao)東(dong))
2.8 統一配置中心

2.9 Docker & CI/CD

ASP.NET Core on Docker (部署ASP.NET Core到Docker)
基于Jenkins+Docker實現持續集成(Part 1)=> 基于Linux的Jenkins安裝(zhuang)與(yu)配置
基于Jenkins+Docker實現持續集成(Part 2)=> 基于Jenkins Pipeline的ASP.NET Core持續集成實踐
其他好文:
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統一管理配置
示例代碼:
2.11 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
2.12 其他
下面的系列文章來自一位園友:曹劍,這個系列文章把(ba)微(wei)服務(wu)的(de)最重要(yao)的(de)內容過了(le)一遍。
① 微服務實戰(一):落地微服務架構到直銷系統(什么是微服務)
② 微服務實戰(二):落地微服務架構到直銷系統(構建消息總線框架接口)
③ 微服務實戰(三):落地微服務架構到直銷系統(構建基于RabbitMq的消息總線)
④ 微服務實戰(四):落地微服務架構到直銷系統(將生產者與消費者接入消息總線)
⑤ 微服務實戰(五):落地微服務架構到直銷系統(構建高性能大并發系統)
⑦ 微服務實戰(七):落地微服務架構到直銷系統(實現命令與命令處理器)
⑧ 微服務實戰(八):落地微服務架構到直銷系統(服務高可用性)
三、學習資料
這里分享(xiang)一些學習.NET Core與微服(fu)務的(de)學習資(zi)料:
① 楊中科,
② 張善(shan)友(you),,NanoFabric GitHub:
③ 桂素偉,,基(ji)于.NET Core的(de)微服務示例 GitHub:
④ 劉騰飛(Jesse),
⑤ 楊波,極客(ke)時(shi)間課(ke)程(cheng)- (此課(ke)程(cheng)主(zhu)要以(yi)Java技術(shu)棧講解,但可以(yi)學習很(hen)多通用的知識點(dian)和思想)
⑥ Microsoft, (建議想要應用.NET Core微服務架構的童鞋必讀此書),示例項目eShopOnContainers GitHub:

⑦ 楊旭,草根專欄 ASP.NET Core Web API索引系列文章
......
除此之外,每篇文章(zhang)后面(mian)都(dou)有參考資(zi)料,也都(dou)是值(zhi)得學習(xi)的資(zi)料。
四、其他拓展
下面列兩個(ge)基于Java技(ji)術棧的微(wei)服務框架(jia)學習示(shi)例,都是由我完整學習過(guo)的示(shi)例總結:

更多分享
本文首發于我的公眾號“EdisonTalk”,此公眾號會長(chang)期(qi)關注(zhu)和分(fen)(fen)享.NET Core、微服務、云原生、DevOps 及 企(qi)業數字化轉(zhuan)型等技術內容文(wen)章(zhang),還會與你分(fen)(fen)享個(ge)人生活成長(chang)的(de)點滴及各類好書的(de)讀書筆記,希望能對你有所幫助,一起成長(chang)!

寫在最后:學習與碼字不易,需要花費我很多的個人時間和精力,如果你能點個贊,可以更加激勵我的學習和分享,謝謝!
作者:
出處:
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保(bao)留此(ci)段聲(sheng)明,且在(zai)文章頁面明顯位置給出原(yuan)文鏈接。

2018年離開了原來的Team加入了新的Team,開始做Java微服務的開發工作,接觸了Spring Boot, Spring Cloud等技術棧,對微服務這種架構有了一個感性的認識。雖然只做了兩個月的Java開發工作,但是對微服務架構的興趣卻沒有結束,又因為自己的.NET背景,想要探索一下在.NET平臺下的微服務架構的可行性,也準備一些材料作為分享的素材。

