前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.Net微服务实践(一):微服务框架选型

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

作者头像
我思故我在
发布2020-04-08 15:28:42
5120
发布2020-04-08 15:28:42
举报
文章被收录于专栏:我思故我在我思故我在

目录

  • 微服务框架
  • SpringCloud
    • SpringCloud技术栈
    • SpringCloud核心组件
    • 核心组件工作原理
  • 微服务架构组件
  • 最后

微服务框架

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

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

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

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

SpringCloud

SpringCloud技术栈

从上面的技术栈图中可以看出:

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

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 KongTyk OrangeSpring Cloud Gateway apiaxleapi-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介绍和快速开始

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 微服务框架
  • SpringCloud
    • SpringCloud技术栈
      • SpringCloud核心组件
        • 核心组件工作原理
        • 微服务架构组件
        • 最后
        相关产品与服务
        负载均衡
        负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档