Sentinel Go 0.3.0 发布,支持熔断降级能力
Sentinel 是阿里巴巴开源的,面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统自适应保护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀、冷启动、消息削峰填谷、集群流量控制、实时熔断下游不可用服务等,是保障微服务高可用的利器,原生支持 Java/Go/C++ 等多种语言,并且提供 Istio/Envoy 全局流控支持来为 Service Mesh 提供高可用防护的能力。
近期,Sentinel Go 0.3.0 正式发布,带来了熔断降级特性支持,可以针对 Go 服务中的不稳定调用进行自动熔断,避免出现级联错误/雪崩,是保障服务高可用重要的一环。结合 Sentinel Go 已经提供的 gRPC、Gin、Dubbo 等框架组件的适配模块,开发者可以快速在 Web、RPC 调用层面配置熔断降级规则来保护自身服务的稳定性。同时 0.3.0 版本也带来了 etcd 动态数据源模块,开发者可以方便地通过 etcd 来动态调整熔断降级策略。
为什么需要熔断降级
一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的时候,可能需要远程调用银联提供的 API;查询某个商品的价格,可能需要进行数据库查询。然而,这个被依赖服务的稳定性是不能保证的。如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也会变长,线程会产生堆积,最终可能耗尽业务自身的线程池,服务本身也变得不可用。
现代微服务架构都是分布式的,由非常多的服务组成。不同服务之间相互调用,组成复杂的调用链路。以上的问题在链路调用中会产生放大的效果。复杂链路上的某一环不稳定,就可能会层层级联,最终导致整个链路都不可用。因此我们需要对不稳定的服务进行熔断降级,暂时切断不稳定调用,避免局部不稳定因素导致整体的雪崩。
Sentinel Go 熔断降级特性基于熔断器模式的思想,在服务出现不稳定因素(如响应时间变长,错误率上升)的时候暂时切断服务的调用,等待一段时间再进行尝试。一方面防止给不稳定服务“雪上加霜”,另一方面保护服务的调用方不被拖垮。Sentinel 支持两种熔断策略:基于响应时间(慢调用比例)和基于错误(错误比例/错误数),可以有效地针对各种不稳定的场景进行防护。
下面我们介绍一下 Sentinel 流控降级的一些最佳实践。
流控降级最佳实践
在服务提供方(Service Provider)的场景下,我们需要保护服务提供方不被流量洪峰打垮。我们通常根据服务提供方的服务能力进行流量控制,或针对特定的服务调用方进行限制。为了保护服务提供方不被激增的流量拖垮影响稳定性,我们可以结合前期的容量评估,通过 Sentinel 配置 QPS 模式的流控规则,当每秒的请求量超过设定的阈值时,会自动拒绝多余的请求。
在服务调用端(Service Consumer)的场景下,我们需要保护服务调用方不被不稳定的依赖服务拖垮。借助 Sentinel 的信号量隔离策略(并发数流控规则),限制某个服务调用的并发量,防止大量慢调用挤占正常请求的资源;同时,借助熔断降级规则,当异常比率或业务慢调用比例超过某个阈值后将调用自动熔断,直到一段时间过后再尝试恢复。熔断期间我们可以提供默认的处理逻辑(fallback),熔断期间的调用都会返回 fallback 的结果,而不会再去尝试本已非常不稳定的服务。需要注意的是,即使服务调用方引入了熔断降级机制,我们还是需要在 HTTP 或 RPC 客户端配置请求超时时间,来做一个兜底的保护。
同时 Sentinel 还提供全局维度的系统自适应保护能力,结合系统的 Load、CPU 使用率以及服务的入口 QPS、响应时间和并发量等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。系统规则可以作为整个服务的一个兜底防护策略,保障服务不挂。
Let's start hacking!
Sentinel Go 版本正在快速演进中,我们非常欢迎感兴趣的开发者参与贡献,一起来主导未来版本的演进。Sentinel Go 版本的演进离不开社区的贡献。若您有意愿参与贡献,欢迎联系我们加入 Sentinel 贡献小组一起成长(Sentinel 开源讨论钉钉群:30150716)。
同时,一年一度的阿里巴巴编程之夏(Alibaba Summer of Code)开始啦!如果你是在校的学生,有兴趣参与 Sentinel 项目的开发和演进,不要错过此次机会,欢迎 pick 感兴趣的 issue 提交提案:https://github.com/alibaba/Sentinel/issues/1497
Now let's start hacking!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Apache CloudStack 4.14 发布,长期支持版本
Apache CloudStack社区于5月26日发布最新的长期支持版本 Apache CloudStack 4.14。 和上一个长期支持版本4.13相比,这个版本包含了10几项新功能和超过200项的bug修复和改进,包括 全新的UI界面(看上去更加简介,现代) 全新的备份和恢复框架(目前已经支持和Veeam集成) VMware环境的纳管 纳管 Kubernetes服务 L2层网络对PVLAN的增强 虚机UEFI的支持 KVM宿主机滚动式维护 支持对虚拟路由(VR)的健康检查 支持下载SSVM/CPVM/VR的诊断数据 支持对虚机嵌入更多配置元数据(metadata) 支持对SSVM的直接下载 ......
- 下一篇
传统企业的云原生走向,第二期云原生实践调研报告发布!
2019年的云原生大放异彩,业内对云原生也有许多定义和预判,比如“云原生技术商业化元年”,“未来将云原生一切”,“上云就上云原生”。因为云原生技术具备容器化、动态调度和快速交付的特点,能够最大化释放云计算生产力的应用设计、开发、交付和管理方式,快速将价值传递给客户。 很多企业希望借助云原生技术快速、高质量地交付数字化服务和软件,并进行可靠的大规模运维,从而实现数字化转型。通过本调研报告您可以了解到传统企业当前IT应用开发现状,云原生技术在企业的应用情况,以及突如其来的疫情给2020年的IT规划所带来的影响,希望能对您企业的IT架构转型和云原生技术采用提供借鉴。 2020云原生调研报告亮点提炼: 1、云原生已成为新常态,容器化需求从行业头部企业下沉到中小规模企业,从领先企业尝鲜变为主流企业必备; 2、52.3%的企业将云原生技术用于生产环境,其中核心业务生产21.7%、边缘业务30.6%,容器落地比例大 3、中间件、存储、网络、数据库、安全等基础服务纷纷与云原生对齐; 4、中国率先控制住疫情为国内企业在数字化转型方面争取到窗口期,数字化转型在疫情和后疫情时期越发重要。 一、调研数据与调研...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- MySQL8.0.19开启GTID主从同步CentOS8