近日,阿里巴巴中间件团队宣布开源 Sentinel,并发布了首个社区版本v0.1.0。GitHub地址为:https://github.com/alibaba/Sentinel 。

关于Sentinel,阿里巴巴给出的描述比较简单:

A lightweight flow-control library providing high-available protection and monitoring (高可用防护的流量管理框架)。

Sentinel是什么?

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。说的简单一点,Sentinel是一个对资源调用的控制组件,主要涵盖限流、降级、负载保护等功能模块。

Sentinel于2012年诞生,第一个版本的主要功能为入口流量控制。在之后的6年里,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量归整场景以及生产实践。

如今,阿里巴巴决定把Sentinel开源,可以说是对开源社区的一个重大贡献。

在开源的同时,阿里巴巴还宣布把 Sentinel 的适配器捐给了Dubbo,进一步完善了 Dubbo 生态。

在复杂的生产环境下可能部署着成千上万的 Dubbo 服务实例,流量持续不断地进入,服务之间进行相互调用。但是分布式系统中可能会因流量激增、系统负载过高、网络延迟等一系列问题,导致某些服务不可用,如果不进行相应的控制可能导致级联故障,影响服务的可用性,因此如何对流量进行合理的控制,成为保障服务稳定性的关键。随着Sentinel的开源,对于使用Dubbo构建微服务的企业和开发团队来说是一大福音。

关于Sentinel接入Dubbo的教程,可以参考:http://dubbo.incubator.apache.org

Sentinel 的特征

丰富的应用场景: Sentinel承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀,即突发流量控制在系统容量可以承受的范围;消息削峰填谷;实时熔断下游不可用应用,等等。

完备的监控功能: Sentinel同时提供最实时的监控功能,您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

简单易用的扩展点: Sentinel提供简单易用的扩展点,您可以通过实现扩展点,快速的定制逻辑。例如定制规则管理,适配数据源等。

Sentinel分为两个部分:

服务端基于Spring Boot开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。 服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Sentinel 的功能

限流

当我们设计了一个函数,准备上线,这时候这个函数会消耗一些资源,处理上限是1秒服务3000个QPS,但如果实际情况遇到高于3000的QPS该如何解决呢?Sentinel提供了两种流量统计方式,一种是统计并发线程数,另外一种则是统计 QPS,当并发线程数超出某个设定的阈值,新的请求会被立即拒绝,当QPS超出某个设定的阈值,系统可以通过直接拒绝、冷启动、匀速器三种方式来应对,从而起流量控制的作用。

降级

接触过Spring Cloud、Service Mesh的同学,都知道熔断降级的概念。服务之间会有相互依赖关系,例如服务A做到了1秒上万个QPS,但这时候服务B并无法满足1秒上万个QPS,那么如何保证服务A在高频调用服务B时,服务B仍能正常工作呢?一种比较常见的情况是,服务A调用服务B时,服务B因无法满足高频调用出现响应时间过长的情况,导致服务A也出现响应过长的情况,进而产生连锁反应影响整个依赖链上的所有应用,这时候就需要熔断和降级的方法。Sentinel通过并发线程数进行限制和响应时间对资源进行降级两种手段来对服务进行熔断或降级。

塑形

通常我们遇到的流量具有随机性、不规则、不受控的特点,但系统的处理能力往往是有限的,我们需要根据系统的处理能力对流量进行塑形,即规则化,从而根据我们的需要来处理流量。Sentinel通过资源的调用关系、运行指标、控制的效果三个维度来对流量进行控制,开发者可以自行灵活组合,从而达到理想的效果。

负载保护

平时系统运行都没问题,但遇到大促的时候,发现机器的load非常高,这时候对系统的负载保护就显得非常重要,以防止雪崩。Sentinel 提供了对应的保护机制,让系统的入口流量和系统的负载达到一个平衡,保证系统在能力范围之内处理最多的请求。需要注意的是,Sentinel在系统负载保护方面的判断机制是根据系统能够处理的请求,和允许进来的请求,来做平衡,而不是根据一个间接的指标(系统load)来做限流。因为我们最终追求的目标是在系统不被拖垮的情况下,提高系统的吞吐率,而不是load一定要到低于某个阈值。

阿里巴巴宣布开源限流降级中间件——Sentinel相关推荐

  1. 阿里巴巴开源限流降级神器Sentinel大规模生产级应用实践

    作者:丁浪,目前在创业公司担任高级技术架构师.曾就职于阿里巴巴大文娱和蚂蚁金服.具有丰富的稳定性保障,全链路性能优化的经验.架构师社区特邀嘉宾! 前言 互联网上关于限流算法.Sentinel功能介绍. ...

  2. 阿里巴巴开源限流系统 Sentinel 全解析

    今年下半年阿里开源了自研的限流系统 Sentinel,官方对 Sentinel 的介绍中用到了一系列高大山的名词诸如 限流.熔断降级.流量塑形.系统负载保护等,还有漂亮的形容词诸如 轻巧.专业.实时等 ...

  3. 限流降级神器-哨兵(sentinel)原理分析

    Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度来帮助用户保护服务的稳定性. 大家可能会问:Se ...

  4. sentinel 阿里 原理_限流降级神器:哨兵(sentinel)原理分析

    文章较长,但是干货满满,建议收藏或关注后细读 Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度来 ...

  5. 带哨兵节点的链_限流降级神器-哨兵(sentinel)的资源调用链原理分析

    点击上方 Yoon丶徒手摘星 ,选择 置顶或者星标技术干货每日送达! 我们已经知道了sentinel实现限流降级的原理,其核心就是一堆Slot组成的调用链. 这里大概的介绍下每种Slot的功能职责:N ...

  6. 36、熔断-限流-降级

    目录 一.服务雪崩 二.熔断-限流-降级概述 三.熔断限流技术选型 四.sentinel限流 1 - 基于QPS限流 2 - Throttling策略 3 - sentinel预热/冷启动 五.sen ...

  7. 高可用架构之限流降级

    一.服务等级协议 我们常说的N个9,就是对SLA的一个描述. SLA全称是ServiceLevel Agreement,翻译为服务水平协议,也称服务等级协议,它表明了公有云提供服务的等级以及质量. 例 ...

  8. 阿里开源限流、降级工具Sentinel介绍与使用

    Sentinel 是什么? 简言之,就是用于管理应用服务的流量控制.熔断降级的组件.当我们的服务有流量控制.熔断降级方面的需求时,可以考虑使用该组件. Sentinel: 分布式系统的流量防卫兵 随着 ...

  9. 更好用的集群限流功能,Sentinel 发布 v1.4.2

    Sentinel 发布 v1.4.2 正式发布,该版本主要变更如下: 特性/功能改进 新增 Zuul 1.x 适配模块(sentinel-zuul-adapter),结合集群限流特性可以更好地在 AP ...

最新文章

  1. Linux之用户组相关操作 groupadd groupdel
  2. 实现延时任务的 4 种实现方案!
  3. 结构(struct)
  4. eclipse设置字体_字符编码_快捷键
  5. Servlet的第一个程序HelloWorld
  6. python中的is判断引用的对象是否一致,==判断值是否相等
  7. js中的Object.create(null) 和 {} 的区别
  8. [html] HTML全局属性(global attribute)有哪些(包含H5)?
  9. java中原始数据文件的输入
  10. 数据结构基础(6) --顺序栈的设计与实现
  11. hive遍历_Hive解析流程-抽象语法树生成
  12. 图像增强处理之:同态滤波与Retinex算法(一)同态滤波
  13. Spring AOP动态代理原理与实现方式
  14. 彻底卸载VS2015的工具及使用方法,亲测有效!!!
  15. uniapp 微信小程序 生成海报
  16. ogg格式怎样才能转换成MP3格式
  17. IIS-扩展接口ISAPI-Filter分析
  18. linux下安装postgresql遇到的问题(zlib library not found,readline library not found)
  19. 2020腾讯实习生招聘面试算法题
  20. linux 开发面试---基础题1

热门文章

  1. 《Engineering》评选2021年全球十大工程成就
  2. Curr Biol:间隔学习可巩固记忆的奥秘
  3. 中国的自动驾驶到底发展到了什么程度?
  4. 深度报告:一文看懂生物芯片产业
  5. 纳米片晶体管是摩尔定律的下一步,也许是最后一步!
  6. 【边缘计算】边缘计算元年一文看懂云边协同!九大场景带来新一轮信息革命...
  7. 鼠标终将消失,未来我们有哪些人机交互方式?
  8. 滴滴重磅发布:KDD2018大会187页人工智能+交通教程
  9. GIS最新热点以及未来发展热门
  10. 机器人也需要拥有属于自己的性格