一、为啥要总结和收集这个系列?
今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有了一个感性的认识。虽然只做了两个月的开发工作,但是对微服务架构的兴趣却没有结束,又因为自己的.NET背景(虽然对.NET的生态有点恨铁不成钢),想要探索一下在.NET平台下的微服务架构的可行性,也准备一些材料作为分享的素材。
幸运的是,在.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 服务发现&注册&通信基于Consul实现服务治理(Part 1)
基于Consul实现服务治理(Part 2)
服务间的通信调用方式(REST and RPC)
2.2 熔断&降级基于Polly+AspectCore实现熔断与降级机制
2.3 API网关基于Ocelot实现API网关服务(Part 1)
基于Ocelot实现API网关服务(Part 2)
2.4 统一验证&授权基于IdentityServer实现授权与验证服务(Part 1)
基于IdentityServer实现授权与验证服务(Part 2)
基于Ocelot+IdentityServer实现统一验证与授权服务
其他好文:
IdentityServer4 中文文档与实战(from 晓晨Master 李志强)
使用IdentityServer4建立AuthorizationServer系列文章(from 草根专栏 杨旭)
Swagger如何访问Ocelot中带权限验证的API (from axzxs2001 桂素伟)
Ocelot.JwtAuthorize:一个基于网关的Jwt验证包 (from axzxs2001 桂素伟)
2.5 分布式追踪&日志基于Ocelot+Butterfly实现分布式追踪
基于Exceptionless实现分布式日志记录
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 数据一致性&事件总线基于EasyNetQ使用RabbitMQ消息队列
基于MassTransit实现数据最终一致性(Part 1)
基于MassTransit实现数据最终一致性(Part 2)
基于开源项目CAP的初步使用与数据最终一致性
CAP:
如何在你的项目中集成CAP(手把手视频教程)(from savorboard 杨晓东)
2.8 统一配置中心
基于Apollo实现统一配置中心
2.9 Docker & CI/CD