.Net微服务实践(一):微服务框架选型

微服务框架

微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每一个微服务仅关注于完成一件任务并很好地完成该任务。在全部状况下,每一个任务表明着一个小的业务能力。html

以往咱们开发应用程序都是单体型,虽然开发和部署比较方便,但后期随着业务的不断增长,开发迭代和性能瓶颈等问题,将会困扰开发团队,微服务就是解决此问题的有效手段。前端

那么咱们在具体实践落地微服务时,咱们又须要作什么?一个微服务框架到底又有什么呢?特别是对于.NET生态圈的小伙伴们,一直都有不少困惑,不知该如何下手。spring

既然咱们不知道,又要高清楚,那最好的办法是什么呢?我认为最有效的方式是研究成熟的产品。市面上成熟的微服务框架有一些, 而SpringCloud就是可供研究的对象,下面咱们一块儿来看看SpringCloud是什么?后端

SpringCloud

SpringCloud技术栈

从上面的技术栈图中能够看出:api

  • 微服务框架核心是服务治理
  • 服务治理的核心组件包括网关服务注册与发现服务调用

SpringCloud核心组件

组件 选型 备注
网关 Zuul
服务注册与发现 Eureka
Consul
zookeeper
服务调用 Feign 根据注解和选择机器,拼接Url地址,发起请求
简化服务调用
负载均衡 Ribbon 服务调用负载均衡,配合Feign和Euraka使用
断路器 Hystrix 隔离、熔断以及降级的一个框架
服务线程池隔离,实现不一样服务的调度隔离,避免服务雪崩

核心组件工做原理

Eureka:服务启动时,Eureka会将服务注册到EurekaService,而且EurakeClient还能够返回过来从EurekaService拉去注册表,从而知道服务在哪里安全

Ribbon:服务间发起请求的时候,基于Ribbon服务作到负载均衡,从一个服务的对台机器中选择一台架构

Feign:基于fegin的动态代理机制,根据注解和选择机器,拼接Url地址,发起请求负载均衡

Hystrix:发起的请求是经过Hystrix的线程池来走,不一样的服走不一样的线程池,实现了不一样的服务调度隔离,避免服务雪崩的问题框架

Zuul:若是前端后端移动端调用后台系统,统一走zull网关进入,有zull网关转发请求给对应的服务微服务

说明:若是.Net Core平台下想要使用SpringCloud,可经过steeltoe来实现,具体可参考 https://steeltoe.io/

微服务架构组件

一个较完整的微服务架构包含的以下的组件

组件 选型
网关 Zuul
Ocelot
Kong
Tyk
Orange
Spring Cloud Gateway
apiaxle
api-umbrella
服务注册与发现 Eureka
Consul
zookeeper
服务调用 Feign
restTemplate
负载均衡 Ribbon
断路器 Hystrix
配置管理 Spring Cloud Config
链路追踪 Spring Cloud Sleuth
Zipkin
HTrace
SkyWalking
安全 Spring Cloud Security
Auth2
IdentityServer4
监控 spectator
atlas
消息、事件总线 Spring Cloud Bus (Redis、RabbitMQ、Kafaka)

最后

上面已经介绍了一个微服务框架所包含的架构组件,那么.NET下如何落地呢?接下来咱们从网关开始来一步一步实践。 .NET下的网关,咱们推荐使用Ocelot,来开始咱们的Ocelot之旅. .Net微服务实践(二):Ocelot介绍和快速开始

相关文章
相关标签/搜索