微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑,包含微服务核心组件如
1. Eureka:实现服务注册与发现。
3. Hystrix:实现熔断保护与可视化监控。
4. Config:实现统一管理配置。
(还有更多组件,欢迎补充)
都是我们NET程序员梦寐以求的组件,而.NET Core发展至今,也专门是为微服务提供的框架平台,只是目前处于各路神仙各显神通的阶段,没有一个统一的框架体系来完成和维护这样的框架集,当然,笔者也是按照目前在NET上所了解到的开源框架摸着石头一个一个的寻找和研究,谁叫我是NET的忠实粉呢,因此,笔者也特意开出一个系列来详细探讨NET Core微服务架构体系的各种知识,水平有限,欢迎拍砖。
一:服务注册与发现
本节介绍Consul最小化集群的安装,以及用ASP.NET Core快速建立一个服务,并将这个服务注册到Consul上。
本节在Consul最小化集群安装的基础上,实现多个客户端节点通过配置化自动生成,并根据Consul的Watches机制实现自动运维告警。
二:服务间通信传输方式
.NET Core微服务之路:(纯干货)基于gRPC服务发现与服务治理的方案
我API和服务分离好了,怎么通过服务中心进行发现呢,这个过程是通过什么来实现的呢,本篇我们就来介绍这个基于gRPC的“调用过程”。
.NET Core微服务之路:利用DotNetty实现一个简单的通信过程
在远程调用的过程中,首先需要的是远程通讯,建立两台或多台的连接,才能进行数据传输和调用,本篇我们介绍基于强大的DotNetty框架而实现的简单C/S通讯过程。
NET Core微服务之路:让我们对这个简单Demo通讯进行一次升级和封装
对上一篇的DotNetty通讯Demo进行简单的升级,利用protobuf-net进行序列化,再结合DotNetty Demo并进行一次最简单的RPC远程调用。
三:API网关
Ocelot实现API网关
四:熔断与降级
Ocelot内置Polly实现熔断与降级
五:统一验证与授权
Ocelot内置IdentityServer实现统一验证与授权
六:追踪与日志
基于butterfly实现分布式追踪
基于Exceptionless实现分布式日志记录
七:数据一致性与事件总线
基于MassTransit实现数据最终一致性
基于RabbitMQ实现消息队列
八:统一配置中心
基于Apollo实现统一配置中心
九:统一性能监控
基于App.Metrics实现Net core监控
基于InfluxDB实现数据库监控
基于Grafana实现统一GUI界面监控面板
十:持续发布与持续交付
基于Jenkins和Docker实现CI&CD
推荐一本微软出品的《微服务架构指南》,值得一看,点我下载