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

简介: 近日,Sentinel 贡献的 spring-cloud-circuitbreaker-sentinel  模块正式被Spring Cloud社区合并至 Spring Cloud Circuit Breaker,由此,Sentinel 加入了 Spring Cloud Circuit Breaker 俱乐部,成为 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年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 的支持,在云原生相关领域更好地发挥稳定性保障的作用。

和 Sentinel 相关的开源项目
Sentinel:https://github.com/alibaba/Sentinel
Spring Cloud:https://spring.io/projects/spring-cloud
Spring Cloud Circuit Breaker :https://github.com/spring-cloud-incubator/spring-cloud-circuitbreaker
Dubbo:http://dubbo.apache.org/en-us/
Spring Cloud Alibaba:https://github.com/spring-cloud-incubator/spring-cloud-alibaba
Nacos:https://github.com/alibaba/nacos](https://github.com/alibaba/nacos

Sentinel Contributors
@sczyh30, @carpenterLee, @cdfive, @jasonjoo2010, @mjaow, @canglang1973, @talshalti, @kexianjun,@yikangfeng, @luoxn28, @all4you, @nicktan, @jz0630, @bitonly, @zhaixiaoxiang, @dqing0, @paulkennethkent, @shxz130, @zhousiliang163, @beston123, @lawrencewu, @blindpirate, @HaojunRen, @ATAXGT, @hantianwei, @MickMo, @yklove, @xburning, @yanlinly, @aalmiray, @Leishunyu, @wangjunwei87, @kangyl, @Arlmls, @YoungHu, @foreveryang321, @fangjian0423, @allencloud, @ro9er, @xcaspar, @shannon312, @waveng, @yfh0918, @refactormachine, @jialianglinjl, @kimmking, @nobodyiam, @guonanjun, @manzhizhen, @xg1907

相关文章
|
7月前
|
Java UED Sentinel
微服务守护神:Spring Cloud Sentinel,让你的系统在流量洪峰中稳如磐石!
【8月更文挑战第29天】Spring Cloud Sentinel结合了阿里巴巴Sentinel的流控、降级、熔断和热点规则等特性,为微服务架构下的应用提供了一套完整的流量控制解决方案。它能够有效应对突发流量,保护服务稳定性,避免雪崩效应,确保系统在高并发下健康运行。通过简单的配置和注解即可实现高效流量控制,适用于高并发场景、依赖服务不稳定及资源保护等多种情况,显著提升系统健壮性和用户体验。
130 1
|
7月前
|
Java UED 开发者
Spring Boot 降级功能的神秘面纱:Hystrix 与 Resilience4j 究竟藏着怎样的秘密?
【8月更文挑战第29天】在分布式系统中,服务稳定性至关重要。为应对故障,Spring Boot 提供了 Hystrix 和 Resilience4j 两种降级工具。Hystrix 作为 Netflix 的容错框架,通过隔离依赖、控制并发及降级机制增强系统稳定性;Resilience4j 则是一个轻量级库,提供丰富的降级策略。两者均可有效提升系统可靠性,具体选择取决于需求与场景。在面对服务故障时,合理运用这些工具能确保系统基本功能正常运作,优化用户体验。以上简介包括了两个工具的简单示例代码,帮助开发者更好地理解和应用。
143 0
|
9月前
|
监控 Java Sentinel
使用Sentinel进行服务调用的熔断和限流管理(SpringCloud2023实战)
Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
216 3
|
5月前
|
负载均衡 算法 Java
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
40岁老架构师尼恩分享了关于SpringCloud核心组件的底层原理,特别是针对蚂蚁集团面试中常见的面试题进行了详细解析。内容涵盖了Nacos注册中心的AP/CP模式、Distro和Raft分布式协议、Sentinel的高可用组件、负载均衡组件的实现原理等。尼恩强调了系统化学习的重要性,推荐了《尼恩Java面试宝典PDF》等资料,帮助读者更好地准备面试,提高技术实力,最终实现“offer自由”。更多技术资料和指导,可关注公众号【技术自由圈】获取。
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
|
6月前
|
XML 监控 Java
Spring Cloud全解析:熔断之Hystrix简介
Hystrix 是由 Netflix 开源的延迟和容错库,用于提高分布式系统的弹性。它通过断路器模式、资源隔离、服务降级及限流等机制防止服务雪崩。Hystrix 基于命令模式,通过 `HystrixCommand` 封装对外部依赖的调用逻辑。断路器能在依赖服务故障时快速返回备选响应,避免长时间等待。此外,Hystrix 还提供了监控功能,能够实时监控运行指标和配置变化。依赖管理方面,可通过 `@EnableHystrix` 启用 Hystrix 支持,并配置全局或局部的降级策略。结合 Feign 可实现客户端的服务降级。
322 23
|
6月前
|
监控 Java API
谷粒商城笔记+踩坑(25)——整合Sentinel实现流控和熔断降级
先简单介绍熔断、降级等核心概念,然后阐述SpringBoot整合Sentinel的实现方式,最后介绍Sentinel在本项目中的应用。
谷粒商城笔记+踩坑(25)——整合Sentinel实现流控和熔断降级
|
6月前
|
监控 Java Nacos
SpringCloud基础5——微服务保护、Sentinel
sentinel、雪崩问题、流量控制、隔离和降级、授权规则、规则持久化
SpringCloud基础5——微服务保护、Sentinel
|
8月前
|
监控 Java 应用服务中间件
SpringCloud面试之流量控制组件Sentinel详解
SpringCloud面试之流量控制组件Sentinel详解
351 0
|
8月前
|
监控 Java 开发者
Spring Cloud中的服务熔断与降级
Spring Cloud中的服务熔断与降级
|
8月前
|
监控 Dubbo 应用服务中间件
通用快照方案问题之Sentinel与SpringCloud和Dubbo的整合如何解决
通用快照方案问题之Sentinel与SpringCloud和Dubbo的整合如何解决
65 0