
文章插图
Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景
本文介绍阿里开源限流熔断方案Sentinel功能、原理、架构、快速入门以及相关框架比较
基本介绍1 名词解释
- 服务限流 :当系统资源不够,不足以应对大量请求,对系统按照预设的规则进行流量限制或功能限制
- 服务熔断:当调用目标服务的请求和调用大量超时或失败,服务调用方为避免造成长时间的阻塞造成影响其他服务,后续对该服务接口的调用不再经过进行请求,直接执行本地的默认方法
- 服务降级:为了保证核心业务在大量请求下能正常运行,根据实际业务情况及流量,对部分服务降低优先级,有策略的不处理或用简单的方式处理
2 为什么需要限流降级
系统承载的访问量是有限的,如果不做流量控制,会导致系统资源占满,服务超时,从而所有用户无法使用,通过服务限流控制请求的量,服务降级省掉非核心业务对系统资源的占用,最大化利用系统资源,尽可能服务更多用户
3 Sentinel简介

文章插图
Sentinel: 分布式系统的流量防卫兵,是阿里中间件团队2018年7月开源的,面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护系统服务的稳定性
Sentinel 的开源生态:

文章插图
功能特性1 总体介绍
Sentinel 具有以下特征:
丰富的应用场景:秒杀限流,消息削峰填谷、集群流量控制、实时熔断下游不可用应用等
完备的实时监控:Sentinel 同时提供实时的监控功能 。可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况
广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合 。只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel
完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口 。可以通过实现扩展接口来快速地定制逻辑 。例如定制规则管理、适配动态数据源等

文章插图
Sentinel 分为两个部分:
控制台(Dashboard) 基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器
核心库(JAVA 客户端) 不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持
2 控制台特性

文章插图
- 实时监控
- 支持自动发现集群机器列表、服务健康状态、服务调用通过/拒绝QPS、调用耗时、图表统计
- 规则管理及推送
- 支持在界面配置流控、降级、热点规则,并实时推送
- 鉴权
- 控制台支持自定义鉴权接口,提供基本登录功能
(1) 应用流控
针对指定应用实例的流量控制,监控应用流量QPS或并发线程数,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性
流量控制的手段包括:
- 直接拒绝
- Warm Up,即预热/冷启动方式,让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被瞬间压垮
- 匀速排队,严格控制请求通过的间隔时间,让请求以均匀的速度通过
不同于应用流控根据单个应用实例阈值执行限流检查,集群流控只对整个集群调用总量进行限流,例如以下场景:
- 限制某个用户调用某个API的总QPS,提供API的应用在多个机器上部署了多个实例
- 因为多个应用实例流量不均匀,导致集群调用总量没有到的情况下某些机器就开始限流
推荐阅读
- 梦见找拖鞋找不到一双配对的 梦见找拖鞋穿是什么意思
- 路由器300M 450M 1200M双频是啥意思?这样挑选让你网络极速顺畅
- 双门冰箱选购技巧
- 三星双开门冰箱质量怎么样
- 西门子双开门冰箱怎么样
- 双开门冰箱如何选购
- 闪亮茗天曝双MV 大茶今泡出爱的味道
- 麦当劳红豆双皮奶风味麦旋风好吃吗,麦当劳红豆双皮奶冰淇淋多少
- 阿里资深架构师:同样是数据中台,为什么差距那么大?
- 玩转双系统安装,这10个知识盲区要扫除
