原文:.NET Core微服务之路:不断更新中的目录 (v0.43)
微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑,包含微服务核心组件如
1. Eureka:实现服务注册与发现。
2. Zuul:实现统一API网关。
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远程调用。
.NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成
本篇重点介绍DotEasy.Rpc的简单构建,以及如何通过Asp.net core + consul + doteasy.rpc实现一个rpc远程调用服务,利用doteasy.rpc框架,关键代码精简不到十行(接口定义和实现除外)。
三:API网关
NET Core微服务之路:基于Ocelot的API网关实现--http/https协议篇
API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。
NET Core微服务之路:基于Ocelot的API网关Relay实现--tcp协议篇
四:熔断与降级
Ocelot内置Polly实现熔断与降级
五:统一验证与授权
Ocelot内置IdentityServer实现统一验证与授权
六:追踪与日志
基于butterfly实现分布式追踪
基于Exceptionless实现分布式日志记录
七:数据一致性与事件总线
基于MassTransit实现数据最终一致性
基于RabbitMQ实现消息队列
八:统一配置中心
基于Apollo实现统一配置中心
九:统一性能监控
基于App.Metrics实现Net core监控
基于InfluxDB实现数据库监控
基于Grafana实现统一GUI界面监控面板
十:持续发布与持续交付
基于Jenkins和Docker实现CI&CD
推荐一本微软出品的《微服务架构指南》,值得一看,点我下载