简介:在经过数月的打磨后,Sentinel 1.8.0 版本正式发布!该版本是本年度最重要的版本之一,包含大量特性改进与 bug 修复,尤其是针对熔断降级特性的完善升级(支持任意统计时长、慢调用比例降级策略、熔断器事件监听)。

在经过数月的打磨后,Sentinel 1.8.0 版本正式发布!该版本是本年度最重要的版本之一,包含大量特性改进与 bug 修复,尤其是针对熔断降级特性的完善升级(支持任意统计时长、慢调用比例降级策略、熔断器事件监听);同时该版本进一步扩充了开源生态,提供对 Java EE (JAX-RS, CDI), Quarkus, HTTP client 等体系的原生支持。详细特性列表请参考 Release Notes,欢迎大家使用并提出建议。

下面我们来一起探索一下 Sentinel 1.8.0 的重要特性。

熔断降级改进

一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的时候,可能需要远程调用银联提供的 API;查询某个商品的价格,可能需要进行数据库查询。然而,这个被依赖服务的稳定性是不能保证的。如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也会变长,线程会产生堆积,最终可能耗尽业务自身的线程池,服务本身也变得不可用。

现代微服务架构都是分布式的,由非常多的服务组成。不同服务之间相互调用,组成复杂的调用链路。以上的问题在链路调用中会产生放大的效果。复杂链路上的某一环不稳定,就可能会层层级联,最终导致整个链路都不可用。因此我们需要对不稳定的弱依赖服务进行自动熔断,暂时切断不稳定调用,避免局部不稳定因素导致整体的雪崩。

Sentinel 1.8.0 版本对原有的熔断降级模块进行了重构和升级,重新以熔断器(cicuit breaker)的形式进行抽象,并进一步完善了熔断器的能力。新版熔断降级支持任意统计时长,用户可以根据接口的场景灵活配置统计维度为秒级或者分钟级;同时我们也引入了用户需要的半开启探测恢复支持。新版熔断降级还对原有的秒级平均 RT 策略进行了升级,原有 RT 策略对稀疏请求不友好,并且采用平均 RT 可能会被某个特别慢的调用影响。1.8.0 版本将基于响应时长的策略升级为慢调用比例策略,用户指定响应时长超出多少记为慢调用(即稳态 RT 的上界),同时配置慢调用比例阈值,结合场景配置统计时长维度,即可更好地针对慢调用进行熔断。用户可以结合 Sentinel 控制台的实时监控来决定稳态 RT 的阈值。

同时考虑到用户可能需要感知熔断器的状态变化以进行一些日志记录或其它的操作,Sentinel 提供了熔断器的事件监听器扩展,用户可以注册自定义的事件监听器以感知熔断器状态变化。示例:

EventObserverRegistry.getInstance().addStateChangeObserver("logging",

(prevState, newState, rule, snapshotValue) -> {if (newState == State.OPEN) {// 变换至 OPEN state 时会携带触发时的值System.err.println(String.format("%s -> OPEN at %d, snapshotValue=%.2f", prevState.name(),TimeUtil.currentTimeMillis(), snapshotValue));} else {System.err.println(String.format("%s -> %s at %d", prevState.name(), newState.name(),TimeUtil.currentTimeMillis()));}
});

至此,Sentinel 已提供三种熔断策略:慢调用比例、异常比例和异常数。有关熔断降级特性的更多信息请参考 熔断降级文档。

开源生态与云原生

Sentinel 1.8.0 进一步扩充了开源生态。Sentinel 1.8.0 引入了 Java EE 原生支持,提供对 JAX-RS Web 应用的原生支持(sentinel-jax-rs-adapter),以及基于 CDI 的注解埋点支持(sentinel-annotation-cdi-interceptor),对于采用原生 Java EE 架构的服务可以更方便地接入。

Quarkus 作为广受关注的云原生微服务框架,在微服务框架中活跃度排名前列。Sentinel 1.8.0 提供了针对 Quarkus 的适配模块,支持 Quarkus Web 服务无缝集成(基于 JAX-RS 适配),并且通过 CDI 注解埋点支持和 Reactor 适配,可以针对 Quarkus 服务中的任意逻辑进行流控。Quarkus 适配模块支持构建 native image,感兴趣的开发者欢迎参考 demo 进行尝试。

至此,Sentinel 的开源生态得到进一步扩充:

其它重要特性/改进

  • @SentinelResource 注解支持配置类级别统一的 defaultFallback
    修复 Dubbo 2.7.x 适配模块 Entry 泄漏可能导致 FGC 的 bug

修复 Spring Web 适配模块在内部转发请求时可能导致 ErrorEntryFreeException 的 bug
支持通过 properties 配置文件配置 project.name(至此所有启动配置项均可通过文件配置)
新增 Eureka 数据源支持
更多信息请参考 Release Notes。

Start hacking

Sentinel 1.8.0 是社区一起定义的年度版本,近 80% 的特性都是社区开发者贡献的。感谢各位贡献者的付出!同时我们非常欢迎大家持续参与社区贡献,一起来参与未来版本的演进。若您有意愿参与社区贡献,欢迎联系我们加入 Sentinel 贡献小组一起成长(Sentinel 开源讨论钉钉群:30150716)。我们会定期给活跃贡献者寄送小礼品,核心贡献者会提名为 committer,一起主导社区的演进。同时,也欢迎大家通过 AHAS Sentinel 控制台 来快速体验 Sentinel 的能力。Now let's start hacking!

作者:中间件小哥

原文链接

本文为阿里云原创内容,未经允许不得转载。

gateway sentinel 熔断 不起作用_Sentinel 1.8.0 年度版本发布,熔断降级重构升级相关推荐

  1. Sentinel 1.8.0 年度版本发布,熔断降级重构升级!

    在经过数月的打磨后,Sentinel 1.8.0 版本正式发布!该版本是本年度最重要的版本之一,包含大量特性改进与 bug 修复,尤其是针对熔断降级特性的完善升级(支持任意统计时长.慢调用比例降级策略 ...

  2. gateway sentinel 熔断 不起作用_Sentinel 的一些概念与核心类介绍

    了解 Sentinel 的一些概念 资源:资源是 Sentinel 的关键概念.资源,可以是一个方法.一段代码.由应用提供的接口,或者由应用调用其它应用的接口. 规则:围绕资源的实时状态设定的规则,包 ...

  3. gateway sentinel 熔断 不起作用_Sentinel实现熔断与限流 - 魔笔钨丝浣

    学习地址:https://www.bilibili.com/video/BV18E411x7eT?p=111 Sentinel 官网地址: 中文文档:/wiki/介绍 随着微服务的流行,服务和服务之间 ...

  4. Redis 哨兵(sentinel)模式集群配置(5.0.3版本)

    一.准备工作 1.系统环境:centos6.4 2.服务器六台(1主5从): 192.168.1.161(master) 192.168.1.162(slave) 192.168.1.163(slav ...

  5. gateway sentinel 熔断 不起作用_微服务Gateway新一代网关

    上篇: https://zhuanlan.zhihu.com/p/183930681​zhuanlan.zhihu.com 一.概述简介 1.官网 上一代zuul 1.x:Netflix/zuul 当 ...

  6. feign直接走熔断_【121期】面试官:什么是熔断?什么是服务降级?

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅 阶段汇总集 ...

  7. 问道阿里哨兵Sentinel框架_仪表盘_限流_v0.0.2

    文件名称 版本号 作者 qq 版本 问道阿里哨兵Sentinel框架_仪表盘_限流 v0.0.2 若布与宫合 8416837 SpringBoot 2.2.2 Spring-cloud-starter ...

  8. gateway sentinel 熔断 不起作用_Spring Cloud Alibaba集训营第五天(服务熔断和限流)

    前言:为什么需要流控降级 我们的生产环境经常会出现一些不稳定的情况,如: 大促时瞬间洪峰流量导致系统超出最大负载,load 飙高,系统崩溃导致用户无法下单 "黑马"热点商品击穿缓存 ...

  9. gateway sentinel 熔断 不起作用_《一起学sentinel》一

    <一起学sentinel>一.一起搭建sentinel服务 一.概述 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 以流量为切入点,从流量控制.熔断降级.系统负 ...

最新文章

  1. 初学者浅谈我对领域驱动设计(DDD)的理解
  2. HDU2085:核反应堆(递推)
  3. 如何在同一台电脑上同时运行2个tomcat
  4. qt android 对话框,Qt自定义Dialog
  5. 2019年的wps计算机考试题,2019年3月计算机一级WPS模拟题及答案(2.21)
  6. 该文件可能是只读的 或者您要访问的位置_喔噢小贴士:如何保护PPT不被更改,将其设为只读...
  7. 什么是简单的分析SQL注入漏洞
  8. mysql workbench 数据备份_如何使用MySQL Workbench进行MySQL数据库备份?
  9. TrueType、PostScript 和 OpenType 字体之间的区别是什么? truetype vs opentype
  10. Python+OpenCV:模板匹配(Template Matching)
  11. java基本变量的堆栈_JAVA经验谈:尽可能使用堆栈变量
  12. 电脑桌面录屏软件大全,给大家推荐一波优秀的屏幕录像工具!
  13. 戴尔电脑硬件自检教程
  14. leaflet保存pm绘图geojson数据
  15. APP启动时间检测——u-apm
  16. STM32F303RE 四个ADC同步规则采样
  17. 机器学习与算法(4)--本地散点平滑估计(LOESS)
  18. linux 本地项目文件挂载到虚拟机上面,不用在本地编辑后再上传到虚拟机上,实现高效率开发
  19. 2021-6-10-今日收获
  20. 如何使用ReadProcessMemory读取多重指针

热门文章

  1. BZOJ-1901 Zju2112 Dynamic Rankings 函数式线段树 套 树状数组+离线处理
  2. swiper链接href无效
  3. 模块化开发之sea.js实现原理总结
  4. C语言scanf函数奇遇记
  5. teamlab与redmine试用对比报告
  6. IT人不要一直做技术(转--我也不知道转了几圈了)
  7. 第一章 计算机网络 5 分层结构/协议/接口/服务的概念 [计算机网络笔记]
  8. centos 7 网络设置与图像化界面下载
  9. 页面置换算法——最佳置换算法、最近最少使用算法、先进先出算法、时钟置换算法
  10. python 二进制数 转字符串_Python二进制串转换为通用字符串的方法