Photo :.NET Core
文 | Edison Zhou
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 服务发现与注册
基于Consul实现服务治理(Part B)
基于Docker的Consul服务发现集群的搭建
服务间的通信调用方式(REST & RPC)
3 熔断与降级
基于Polly+AspnetCore实现熔断与降级机制
4 API网关
基于Ocelot实现API网关服务(Part A)
基于Ocelot实现API网关服务(Part B)
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实现分布式日志记录
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 事件总线 & 数据一致性
基于EasyNetQ使用RabbitMQ消息队列
基于MassTransit实现数据最终一致性(Part A)
基于MassTransit实现数据最终一致性(Part B)
基于开源项目CAP的初步使用与数据最终一致性
如何在你的项目中集成CAP(手把手视频教程)(来自CAP作者,微软MVP,大成都的大佬=>杨晓东, https://www.cnblogs.com/savorboard/p/cap-video-1.html)
9 统一配置中心
基于Apollo实现统一配置中心
10 Docker & DevOps
ASP.NET Core on Docker
Jenkins on Linux的安装与配置
基于Jenkins Pipeline的ASP.NET Core持续集成实践
基于Jenkins的开发测试全流程持续集成实践
其他好文:
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统一管理配置
基于Steeltoe使用Zipkin实现分布式追踪
示例代码: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索引系列文章
The End
「 码字不易,也希望各位看官看完觉得还行就在本文右下方顺手点个“在看”,那就是对我最大的鼓励!如果觉得很好,也可以转发给你的朋友,让更多人看到,独乐乐不如众乐乐,是吧?」
往期精彩回顾
.NET Core on K8S学习与实践系列文章索引目录
【导读】我读经典,心旷神怡 - 经典书籍读后感汇总
【导读】我的诗和远方 - 也读唐诗与旅游游记汇总
【资料】2019 .NET China Conf 大会资料下载
2019 .NET Conf China-路一直都在,社区会更好
基于Jenkins的开发测试全流程持续集成实践
基于Jenkins Pipeline的.NET Core持续集成实践
点个【在看】和他人一起分享