Sentinel 成为 Spring Cloud 官方推荐的主流熔断降级方案

近日,Sentinel 贡献的 spring-cloud-circuitbreaker-sentinel  模块正式被Spring Cloud社区合并至 Spring Cloud Circuit Breaker,由此,Sentinel 加入了 Spring Cloud Circuit Breaker 俱乐部,成为 Spring Cloud 官方的主流推荐选择之一。这意味着,Spring Cloud 微服务的开发者在熔断降级领域有了更多的选择,可以更方便地利用 Sentinel 来保障微服务的稳定性。

一、什么是 Spring Cloud Circuit Breaker?

Spring Cloud Circuit Breaker 是 Spring Cloud 官方的熔断器组件库,提供了一套统一的熔断器抽象API接口,允许开发者自由选择合适的熔断器实现。这个官方的熔断器组件库,截至目前,官方推荐的熔断器组件有:

  • Hystrix
  • Resilience4J
  • Sentinel
  • Spring Retry

当前,Spring Cloud Circuit Breaker 处于孵化阶段中,未来将合并到 Spring Cloud 主干版本正式发布。

Spring Cloud Circuit Breaker 
https://github.com/spring-cloud-incubator/spring-cloud-circuitbreaker

二、Sentinel 发展历程

2012 年,Sentinel 诞生于阿里巴巴集团内部,主要功能为入口流量控制;

2013 - 2018 年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量控制场景以及生产实践;

2018年7月,阿里巴巴宣布限流降级框架组件 Sentinel 正式开源,在此之前,Sentinel 作为阿里巴巴“大中台、小前台”架构中的基础模块,已经覆盖了阿里的所有核心场景,因此积累了大量的流量归整场景以及生产实践;

2018年9月,Sentinel 发布 v0.2.0版本,释放异步调用支持、热点参数限流等多个重要特性;

2018年10月,Sentinel 发布首个 GA 版本 v1.3.0,该版本包括 Sentinel 控制台功能的完善和一些 bug 修复,以及其它的产品改进;

2018年12月,Sentinel发布v1.4,加入了开发者关注的集群流控功能;

2019年1月,Sentinel发布v1.4,加入了开发者关注的集群流控功能;

2019年3月,Sentinel 发布1.5.0 ,引入 Reactive 支持;

2019年4月,Sentinel 贡献的 spring-cloud-circuitbreaker-sentinel  模块正式被Spring Cloud社区合并至 Spring Cloud Circuit Breaker,成为 Spring Cloud 官方的主流推荐选择之一。

2019年4月25日,Sentinel 发布 1.6.0 ,提供对 Spring Cloud Gateway、Zuul 等主流 API Gateway 的定制化支持。

三、Sentinel 的技术特点

Sentinel 的核心思想:根据对应资源配置的规则来为资源执行相应的流控/降级/系统保护策略。在 Sentinel 中资源定义和规则配置是分离的。用户先通过 Sentinel API 给对应的业务逻辑定义资源,然后可以在需要的时候动态配置规则。

Sentinel 的优势和特性:

  • 轻量级,核心库无多余依赖,性能损耗小。
  • 方便接入,开源生态广泛。Sentinel 对 Dubbo、Spring Cloud、Web Servlet、gRPC 等常用框架提供适配模块,只需引入相应依赖并简单配置即可快速接入;同时针对自定义的场景 Sentinel 还提供低侵入性的注解资源定义方式,方便自定义接入。
  • 丰富的流量控制场景。Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,流控维度包括流控指标、流控效果(塑形)、调用关系、热点、集群等各种维度,针对系统维度也提供自适应的保护机制。
  • 易用的控制台,提供实时监控、机器发现、规则管理等能力。
  • 完善的扩展性设计,提供多样化的 SPI 接口,方便用户根据需求给 Sentinel 添加自定义的逻辑。

更多技术特点介绍:
高可用架构社区专访,点击这里

技术选型:Sentinel vs. Hystrix,点击这里

四、谁正在使用 Sentinel 

目前已有不少企业用户在使用开源版本和云上版本的Sentinel,包括顺丰、vivo、每日优鲜、拼多多、易企秀、爱奇艺、融金所、VIPKID、喜马拉雅FM、百融金服等(按登记顺序排序),我们也在社区发起了“who is using Sentinel”[7]的issue,可以去这个页面了解各家企业的使用场景。

同时,我们提供了 Sentinel 的云上实现,并融入架构可视化、故障演练等功能,形成阿里云高可用服务 AHAS,目的是帮助更多开发者更方便的接入应用高可用能力。

阿里云高可用服务 AHAS:
https://cn.aliyun.com/product/ahas](https://cn.aliyun.com/product/ahas)

五、Sentinel 未来的发展方向

未来,Sentinel 会继续在无规则容量保护的路上探索,提供更多自适应限流策略,更好地结合系统容量来进行流量控制。另外,Sentinel 也会支持更广泛的开源生态,包括 API Gateway、Service Mesh、多语言客户端等;同时也会抽象出标准的指标和监控接口,方便对接 Prometheus 等常用的监控系统。未来 Sentinel 会进一步强化集群流控的能力,加强对 Cloud Native 生态和 Service Mesh 的支持,在云原生相关领域更好地发挥稳定性保障的作用。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言int超出范围字符串,Go返回int64类型字段超出javascript Number范围的解决方法...

Go返回int64类型字段超出javascript Number范围的解决方法最近在项目中,一个go服务给前端提供了一个接口,返回json格式数据,其中Int64字段会超出javascript Number可表示的最大的Int值会丢精度,可以通过返回string类型值来屏蔽这个…

构建可靠系统的原则与实践

随着阿里技术的发展,我们的技术系统越来越成为社会的基础设施,对于这些系统的可靠性要求也就越来越高。但是实际上很多的基础的产品和系统确仍然会出现一些稳定性问题,那么如何才能构建可靠的系统呢?是不是制定非常严格而细致的规…

看完就能独自把集群搭起来!Hadoop HDFS完全分布式环境搭建以及技术详解

作者 | 慢慢变成大佬责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)在文章开始之前,作者想要告诉大家:读懂本篇文章,能让小白快速入门,并且能够搭建完全分布式的集群,以及能对Hadoop …

使用idea创建JavaWeb项目

【第一步】 File—New—Project 【第二步】 选择Java Enterprise版本,然后配置tomcat 注意:这里关联的tomcat home指的是tomcat的解压目录(bin目录的上一级目录); 【第三步】 选择使用模板创建项目 【第四步】 填写…

阿里云栖开发者沙龙PHP技术专场-聊聊服务稳定性保障这些事

本文主要带大家了解服务稳定性的重要性和相关策略。策略大概分两部分,第一方面从架构层面介绍保障服务稳定性的常见策略(限流,降级,隔离,超时,重试和集群)。第二个方面是从流程方面(…

ccs读取dat文件c语言程序,TMS320DM642学习----第六篇(CCS中.dat文件类型详解)

1、如下为.dat文件中文件头的基本格式:MagicNumber Format StartingAddress PageNum Length [NewFormat]下面是分别的解释:MagicNumber:1651.Format:a number from 1 to 4, indicating the format of the samples in the file. Th…

阿里开发者招聘节 | 面试题06-07: MySQL的数据如何恢复到任意时间点

为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次将陆续放出(面试题官方参考答案将在专辑结束后统一汇总分享,点此进入答题并围观他…

通过接口操作MyBatis及数据库配置文件

优点: 不用每次实例化SqlSession配置优于硬编码减少sql书写错误的概率规范代码,面向接口服务 文章目录一、回顾二、如何通过接口操作MyBatis2.1. 文件结构2.2. 依赖jar包2.3. 表结构2.4. mybatis配置文件2.5. db配置文件2.6. 获取SqlSession工具类2.7. 基…

厉害!中国AI企业50强榜单!看完员工待遇,网友:我酸了!

有自媒体说,现在各大国对AI的部署,就像对“核武器”的部署一样,这份脑力和智力的比拼,超级大国都绝对不能输。在最近,赛迪研究院就发布了「2019人工智能企业综合实力100强名单」,BAT毫无疑问霸榜&#xff0…

蚂蚁金服SOFA开源负责人鲁直:不只是中间件,未来会开源更多

近日,技术媒体Linux中国的创始人王兴宇对蚂蚁金服SOFA开源负责人鲁直,就SOFA 5、ServiceMesh、Serverless、Seata等技术内容进行了探讨,以下为专访文章。 虽然我和鲁直在微信上已经联系很久了,但这还是第一次见面。交谈中&#x…

c语言 已知某系统在通信联络中,数据结构(习题)..doc

数据结构(习题).题1.1数据结构在计算机内存中的表示是指———。A.数据的存储结构 B.数据元素C.数据的逻辑结构 D.数据元素之间的关系题1.2从逻辑上可把数据结构分为——。A.动态结构和静态结构 B.顺序结构和链式结构C.线性结构和…

log4j2.xml 配置文件详解

文章目录一、log4j2介绍二、配置文件节点解析三、需要的Maven依赖四、最简配置五、较全面的配置补充一、log4j2介绍 log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn&…

Redis radix tree源码解析

Redis实现了不定长压缩前缀的radix tree,用在集群模式下存储slot对应的的所有key信息。本文将详述在Redis中如何实现radix tree。 核心数据结构 raxNode是radix tree的核心数据结构,其结构体如下代码所示: typedef struct raxNode {uint32…

针对提高48V 配电性能的诸多思考!

作者:Phil Davies 众所周知配电网络 (PDN) 是所有电源系统的主干部分,但随着系统电源需求的不断上升,传统 PDN 承受着提供足够性能的巨大压力。 对于功耗和热管理而言,主要有两种方法可以改善 PDN 对电源系统性能的影响&#x…

Apache Cassandra static column 介绍与实战

假设我们有这样的场景:我们想在 Cassandra 中使用一张表记录用户基本信息(比如 email、密码等)以及用户状态更新。我们知道,用户的基本信息一般很少会变动,但是状态会经常变化,如果每次状态更新都把用户基本…

android线性布局快捷键,【整理】Android图形界面知识学习与总结之:Linear Layout线性布局...

【背景】之前已经学习了:现在接着去学习:整理如下:Linear Layout1.LinearLayout是一个视图组合2.LinearLayout中的子视图只能已单个方向排列,要么是水平,要么是垂直;4.所有如果是垂直的列表,则每…

linux查看openssh和openssl版本命令

查看openssh版本命令 ssh -V查看openssl版本命令 openssl version

TensorFlow 2.0+Keras 防坑指南

TensorFlow 2.0是对1.x版本做了一次大的瘦身,Eager Execution默认开启,并且使用Keras作为默认高级API, 这些改进大大降低的TensorFlow使用难度。 本文主要记录了一次曲折的使用KerasTensorFlow2.0的BatchNormalization的踩坑经历&#xff0c…

收藏!企业数据安全防护5条建议

引言:数据安全对企业生存发展有着举足轻重的影响,数据资产的外泄、破坏都会导致企业无可挽回的经济损失和核心竞争力缺失,而往往绝大多数中小企业侧重的是业务的快速发展,忽略了数据安全重要性。近年来,企业由于自身的…

容器安全拾遗 - Rootless Container初探

近期Docker 19.03中发布了一个重要的特性 “Rootless Container支持”。趁着五一假期,快速验证一下。本文参考了Experimenting with Rootless Docker 一文的内容,并且补充了更多的细节和上手内容。 Rootless容器背景与架构 Docker和Kubernetes已经成为…