.NET Core 微服务学习与实践系列文章目录索引(2019版)


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 A)

基于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的初步使用与数据最终一致性

其他好文:

9 统一配置中心

基于Apollo实现统一配置中心

10 Docker & DevOps

ASP.NET Core on Docker

Jenkins on Linux的安装与配置

基于Jenkins Pipeline的ASP.NET Core持续集成实践

基于Jenkins的开发测试全流程持续集成实践

其他好文:

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学习与实践系列文章索引目录

Spring Cloud 微服务架构学习笔记与示例

【导读】我读经典,心旷神怡 - 经典书籍读后感汇总

【导读】我的诗和远方 - 也读唐诗与旅游游记汇总

【资料】2019 .NET China Conf 大会资料下载

2019 .NET Conf China-路一直都在,社区会更好

基于Jenkins的开发测试全流程持续集成实践

基于Jenkins Pipeline的.NET Core持续集成实践


点个【在看】和他人一起分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯 子串分值 递推

思路&#xff1a; 本题有点难想&#xff0c;采用贡献和的思想。首先需要定义一个last数组&#xff0c;用于记录当前遍历的字母s[i]上一次出现在字符串s中的位置。接着遍历数组&#xff0c;计算每一个字母的贡献值。 参考代码&#xff1a; #include<bits/stdc.h> #defi…

dapr微服务.net sdk入门

Actors入门先决条件.Net Core SDK 3.0Dapr CLIDapr DotNet SDK概述本文档描述如何在客户端应用程序上创建Actor&#xff08;MyActor&#xff09;并调用其方法.MyActor --- MyActor.Interfaces|- MyActorService|- MyActorClient接口项目&#xff08;\MyActor\MyActor.Interface…

TPL Dataflow组件应对高并发,低延迟要求

长话短说2C互联网业务增长&#xff0c;单机多核的共享内存模式带来的排障问题、编程困难&#xff1b;随着多核时代和分布式系统的到来&#xff0c;共享模型已经不太适合并发编程&#xff0c;因此actor-based模型又重新受到了人们的重视。---------------------------调试过多线…

蓝桥杯 递增三元组 二分

参考代码&#xff1a; #include<bits/stdc.h> #define INF 0x3f3f3f3f using namespace std; typedef long long ll; ll cnt 0; int a[100005], b[100005], c[100005];int main() {ios::sync_with_stdio(false); int n;cin >> n;for(int i 0; i < n; i)cin…

蓝桥杯 人物相关性分析 二分

思路&#xff1a; 这道题是常规的模拟题&#xff0c;根据题意写出相关代码即可。模拟题一般容易在边界条件上出错&#xff0c;建议自己设计几个样例测试一下。这题纯暴力的方法不能通过所有的测试点&#xff0c;对于最后的查询&#xff0c;应该使用二分查找&#xff0c;这样算法…

abp模块生命周期设计思路剖析

abp中将生命周期事件抽象为4个接口&#xff1a;//预初始化 public interface IOnPreApplicationInitialization {void OnPreApplicationInitialization([NotNull] ApplicationInitializationContext context); }//初始化 public interface IOnApplicationInitialization {void …

蓝桥杯 迷宫与陷阱 BFS

参考代码&#xff1a; #include<bits/stdc.h> #define INF 0x3f3f3f3f using namespace std; typedef long long ll; struct node{int x, y, step, ticket;node(int a, int b, ll c, int d){xa, yb, stepc, ticketd;} }; queue<node> q; bool vis[1005][1005]; i…

.Net Core + 微信赋能企业级智能客服系统--学习笔记

摘要围绕目前需求猛增的微信及移动端企业智能客服业务&#xff0c;利用 .NET Core 的一系列优秀特性及 SignalR 模块打造全双工、跨微信/QQ/钉钉等应用平台、跨系统平台、跨终端、支持企业级并发的移动端客服系统。讲师介绍目录微信应用生态简介微信小程序基础通讯原理Senparc.…

基于docker-compose的Gitlab CI/CD实践排坑指南

长话短说经过长时间实操验证&#xff0c;终于完成基于Gitlab的CI/CD实践&#xff0c;本次实践的坑位很多&#xff0c; 实操过程尽量接近最佳实践&#xff08;不做hack, 不做骚操作&#xff09;&#xff0c;记录下来加深理解。看过博客园《docker-compose真香》一文的园友留意到…

Is It a Complete AVL Tree AVL树

思路&#xff1a; 考察的点是建立AVL树以及如何判断是否为满二叉树。 建立AVL树需要搞清楚LL、LR、RR、RL四种情况如何左旋和右旋&#xff0c;如下&#xff1a; 类型BF条件操作LLBF(root)2,BF(root->lchild)1root右旋LRBF(root)2,BF(root->lchild)-1先root->lchild左…

AcWing 删减 栈思想

思路&#xff1a; 这道题要是不卡时间复杂度&#xff0c;是道大水题&#xff0c;然而字符串的长度到了6次方&#xff0c;若使用string中的erase函数&#xff0c;看似时间复杂度不高&#xff0c;其实&#xff0c;每次删除子字符串后&#xff0c;后边的字符串需要移动到前面来&am…

读《可复制的领导力》

最近很忙&#xff0c;是特别忙&#xff0c;连上厕所的时间都在回复着各种消息&#xff0c;但还是挤时间看完了《可复制的领导力》&#xff0c;这本书也是领导推荐的。说起领导力&#xff0c;大多数人都会觉得得靠悟&#xff0c;并不能做到言传身教&#xff0c;但书名中却提到了…

AcWing 构造数组 区间合并

思路&#xff1a; 这道题第一眼来看以为是动态规划类型的题目&#xff0c;然而尝试了用dp的方法做&#xff0c;然而超时了&#xff0c;过了差不多一半的测试店&#xff0c;显示的是超时。那么应该来说动态规划是可以做的&#xff0c;但数据卡的比较严。在看其他同学的评论后&am…

为什么需要动态SQL

为什么需要动态SQL在使用 EF或者写 SQL语句时&#xff0c;查询条件往往是这样一种非常常见的逻辑&#xff1a;如果客户填了查询信息&#xff0c;则查询该条件&#xff1b;如果客户没填&#xff0c;则返回所有数据。我常常看到很多人解决这类问题时使用了错误的静态 SQL的解决办…

PAT Family Property DFS+哈希

题目链接 思路&#xff1a; 本题将每个人作为一个单独的结点&#xff0c;若两个人之间是家人关系&#xff0c;则建立边关系。通过哈希法建立人名与编号&#xff0c;编号与人名之间的映射。最后统计每个家庭的人数时&#xff0c;用DFS遍历即可。 对于本题我犯过两个错误&#…

【好文】为什么必须学好.Net Core?怎样弯道超车新年高薪?这样做,一周就够了!(文末彩蛋)...

都2020了你还不会.Net Core&#xff1f;恕我直言&#xff0c;2020年还不会.Net Core是会被淘汰的&#xff01;12月3号&#xff0c;.Net Core3.1的LTS版正式发布&#xff0c;4年来7个正式版本和几十个Preview版本&#xff0c;热烈可见一斑&#xff01;越来越多的互联网软件公司开…

最短路径SPFA和Bellman-Ford算法

参考模板&#xff1a; #include<bits/stdc.h> using namespace std; #define INF 0x3f3f3f3f typedef long long ll;struct node {int v, dis;node(int v, int dis) {this->v v, this->dis dis;} }; vector<node> adj[1005]; int n, d[1005], num[1005]; …

基于 Kubernetes 的基础设施即代码

11 月 9、10 号两天&#xff0c;.NET 社区第一次以“.NET 大会”为品牌在上海召开了第一届峰会&#xff0c;现场与会者达到 600 人规模。大会的第 1 天是各类演讲分享&#xff0c;第 2 天有多个动手实践课。张善友队长、 刘腾飞 和我一起策划了基于 Kubernetes 的 .NET Core 微…

最小生成树Prim和Kruskal算法

两种算法都是基于贪心的方法。 Prim算法&#xff1a; 适用于稠密图。时间复杂度为O(V^2)。(V为顶点数&#xff09; 与Dijkstra算法相似&#xff0c;每次选择离离原点最近的点&#xff0c;加入到现有的生成树中。 Kruskal算法&#xff1a; 适用于稀疏图。时间复杂度为O(E*logE)…

Steeltoe 2.4新增代码生成工具、全新入门指南等,助力.NET微服务开发

Steeltoe框架现可帮助.NET开发人员创建云原生应用。随着其功能的扩充&#xff0c;该框架越来越受欢迎&#xff0c;下载量达到580万&#xff08;并且仍在增加&#xff09;&#xff0c;这其中大部分的功能创新都源自于用户反馈、社区贡献和.NET运行环境各方面的改进。但这些还不够…