Sentinel 动态规则源针对常见的配置中心和远程存储进行适配,目前已支持 Nacos、ZooKeeper、Apollo、redis 等多种动态规则源,可以覆盖到很多的生产场景
实现原理下面介绍Sentinel客户端基本原理
1 基本概念
- Resource 资源
- Sentinel中,需要被流量保护的方法、代码块都可以称为资源,每个资源都需要定义一个唯一的资源名词,用于匹配相关规则
- Entry
- Sentinel功能入口类,Entry 可以通过对主流框架的适配自动创建,也可以通过注解的方式或调用 SphU API 显式创建,创建后执行资源和规则匹配和校验
- Slot
- 功能插槽,由Enty类创建,每个资源对应一系列Slot,Slot实现资源信息收集、规则匹配、校验的,多个Slot通过组成Slot Chain,在进入资源和退出资源时分别基于责任链模式调用entry()和exit()方法

文章插图
一个简单的demo:
String resourceName = "resourceName";Entry entry = null;try { entry = SphU.entry(resourceName); System.out.println("resource running");} catch (BlockException e) { // 限流 throw e;} catch (Throwable e) { e.printStackTrace(); throw e;} finally { if (entry != null) { entry.exit(); }}主要流程如下:
- 进入资源方法之前,基于SphU创建Entry,Entry获取查找资源关联的Slot Chain信息,如果找不到则创建,并基于责任链模式调用Slot的entry()方法
- 资源方法调用
- 资源方法调用完成后,通过Entry触发Slot的exit()逻辑
Sentinel 并发线程数限流不负责创建和管理线程池,而是简单统计当前请求上下文的线程数目,如果超出阈值,新的请求会被立即拒绝,效果类似于信号量隔离
参考《Sentinel官方文档》
https://github.com/alibaba/Sentinel/wiki
《从 Hystrix 迁移到 Sentinel》
https://github.com/alibaba/Sentinel/wiki/Guideline:-从-Hystrix-迁移到-Sentinel
更多精彩,欢迎关注公众号【分布式系统架构】
推荐阅读
- 梦见找拖鞋找不到一双配对的 梦见找拖鞋穿是什么意思
- 路由器300M 450M 1200M双频是啥意思?这样挑选让你网络极速顺畅
- 双门冰箱选购技巧
- 三星双开门冰箱质量怎么样
- 西门子双开门冰箱怎么样
- 双开门冰箱如何选购
- 闪亮茗天曝双MV 大茶今泡出爱的味道
- 麦当劳红豆双皮奶风味麦旋风好吃吗,麦当劳红豆双皮奶冰淇淋多少
- 阿里资深架构师:同样是数据中台,为什么差距那么大?
- 玩转双系统安装,这10个知识盲区要扫除
