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

微服务框架

微服务(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
Kong
Tyk
Orange
Spring Cloud Gateway
apiaxle
api-umbrella
服务注册与发现 Eureka
Consul
zookeeper
服务调用 Feign
restTemplate
负载均衡 Ribbon
断路器 Hystrix
配置管理 Spring Cloud Config
链路追踪 Spring Cloud Sleuth
Zipkin
HTrace
kyWalking
安全 Spring Cloud Security
Auth2
IdentityServer4
监控 spectator
atlas
消息、事件总线 Spring Cloud Bus (Redis、RabbitMQ、Kafaka)

最后

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

原文地址:https://www.cnblogs.com/lcyhjx/p/12641840.html

时间: 2024-10-13 07:16:55

.Net微服务实践(一):微服务框架选型的相关文章

SpringBoot + Kubernetes云原生微服务实践 - (6) 微服务测试设计和实践

微服务测试设计和实践 微服务测试的最大挑战:依赖.解决方案是采用分而治之的策略:a.先针对每一个微服务进行隔离测试,在对每一个微服务进行测试的时候再按照分层的方式进行隔离测试:测试过程中采用mock等技术来隔离依赖简化测试:b.在确保每个微服务通过隔离测试后,再进行整个应用的端到端集成测试 微服务测试分类和技术 Spring(Boot)应用分层 controller 服务的对外接口层,负责接收请求和发送响应 中间涉及到消息,一般是json跟对象间的转换,术语叫做序列化,一般由框架封装 控制器需要

微服务实践之路--RPC

微服务实践之路--RPC 重点来了,本文全面阐述一下我们的RPC是怎么实现并如何使用的,跟Kubernetes和Openstack怎么结合. 在选型一文中说到我们选定的RPC框架是Apache Thrift,它的用法是在Main方法中重启服务,在Client端连接服务去调用, 而我的想法是要跟Dubblo.HSF的用法一样,因为很多人都熟习这两个框架的用法,特别是我们好几个项目都是基于EDAS开发的,而且世面上用Dubbo的公司也很多. 顺便再说一下我们对于RPC的几点要求: 1,兼容Dubbo

微服务实践(总)-原文

本系列文章为 dockone.io 首发,转载请标明出处,以示尊重!! http://dockone.io/people/hokingyang   希望读者通过本系列文章对微服务优缺点有一个比较好的理解,以及何时使用这种架构.也许微服务架构比较适合你的应用.也许你正在开发一个大型.复杂单体式应用,日常开发和部署经验非常缓慢和痛苦,而微服务看起来是远方一个极乐世界.幸运的是,有可以参考的脱离苦海的策略,本篇文章中,我将描述如何逐步将单体式应用迁移到微服务架构. 本系列七篇文章列表如下: 微服务实战

微服务的入门级微框架Spring Boot快速入门

详情请交流  QQ  709639943 00.微服务的入门级微框架Spring Boot快速入门 00.基于java的微信公众号二次开发视频教程 00.leetcode 算法 面试 00.北风网 零基础到数据(大数据)分析专家-首席分析师 00.快速上手JMeter 00.Jmeter 00.2017年Java web开发工程师成长之路 00.R语言速成实战 00.R语言数据分析实战 00.Python+Django+Ansible Playbook自动化运维项目实战 00.Java深入微服务

微服务实践分享(8) 控制调用中心

1.熔断 在微服务领域,熔断机制是从消费端保护微服务提供者的措施,当微服务的运行质量低于某个临界值时,启动熔断机制,暂停微服务调用一段时间,以保障后端的微服务不会因为持续过负荷而宕机. 2.降级 服务降级主要包括容错降级和屏蔽降级 屏蔽降级:1)throw null 不发起远程调用,直接返回空 2)throw exception 不发起远程调用,直接抛出指定异常 3)execute bean 不发起远程调用,直接执行本地模拟接口实现 服务降级是可逆操作,当系统压力恢复到一定值不需要降级服务时,要

免费领取 | 微服务实践沙龙-上海站 大咖演讲资料分享

本文来自网易云社区. 9月1日,网易云联合谐云在上海InnoSpace举办了"微服务实践沙龙",邀请到了携程和蚂蚁金服等微服务的先行者,共同分享了落地实践过程中总结的干货经验.感谢讲师和上海小伙伴们的支持,这里将演讲资料分享给大家.网易云还会继续举办易经布道系列的活动,欢迎大家的关注和参与~ 议题1:配置中心,让微服务更『智能』 讲师:携程框架架构研发部技术专家 宋顺 宋老师的PPT暂时不能公开,这里分享他写的文章给大家学习:配置中心,让微服务更"智能" 议题2:微

2019年微服务实践第一课,网易&谐云&蘑菇街&奥思技术大咖深度分享

微服务的概念最早由Martin Fowler与James Lewis于2014年共同提出,核心思想是围绕业务能力组织服务,各个微服务可被独立部署,服务间是松耦合的关系,以及数据和治理的去中心化管理.微服务能够帮助企业应对业务复杂.频繁更新以及团队规模庞大带来的挑战,实现IT对业务创新的驱动. 1月12日,网易云主办的"微服务实践沙龙"将走进深圳,邀请业界微服务的先行者,分享落地实践过程中总结的干货经验. 报名地址:点击报名 时间:2019年1月12日 13:30-17:00 地点:广东

ASP.NET Core OceLot 微服务实践

1.OceLot中间件介绍 在传统的BS应用中,随着业务需求的快速发展变化,需求不断增长,迫切需要一种更加快速高效的软件交付方式.微服务可以弥补单体应用不足,是一种更加快速高效软件架构风格.单体应用被分解成多个更小的服务,每个服务有自己的独立模块,单独部署,然后共同组成一个应用程序.把范围限定到单个独立业务模块功能.分布式部署在各台服务器上. 而Ocelot开发的目标就是使用.NET运行面向微服务/服务的架构,要达到这个目标需要一个统的系统入口点(我们统称为API网关),同时需要与Identit

京东、宅急送的微服务实践分享(下)| 架构师小组交流会

架构师小组交流会是由国内知名公司技术专家参与的技术交流会,每期选择一个时下最热门的技术话题进行实践经验分享. 第一期:来自沪江.滴滴.蘑菇街.扇贝架构师的 Docker 实践分享 第二期:来自滴滴.微博.唯品会.魅族.点评关于高可用架构的实践分享 第三期:京东.宅急送的微服务实践分享(上)第三期小组交流会邀请到了国内电商领头羊京东.宅急送技术负责人,在上篇京东.宅急送的微服务实践分享(上)中他们介绍了各自产品的微服务实践,本次他们就 API 网关的设计.服务的 Docker 化.服务测试.持续集