开源分析和落地方案—Sentinel篇
京东科技开发者
共 8746字,需浏览 18分钟
·
2024-11-13 14:10
一、Sentinel是什么?
二、Sentinel能带来什么?
▪流量控制(FlowRule)
区分来源、限流类型(QPS/线程数)、支持上下游链路、多种流控效果(拒绝、排队、慢启动)
热点限流是对流量控制的补充,对Top-K的热点参数进行限流处理
可以理解为应用级的流量控制策略,包含负载、单机平均RT,单机QPS等。不过,因为粒度较粗且部分指标的获取在容器环境下存在适配问题,所以社区中大部分人对这个的理解是还有待完善,成熟的案例比较少。
在熔断降级方面,则是直接对标的Hystrix框架,一是在实现机制上做了优化,相对Hystrix基于线程池的隔离控制策略,通过并发控制机制减少了线程池的创建和占用。另外,在配置上也更加简化,相信有过Hystrix使用经验,都会对其繁杂的注解配置项感到困惑,而当引入Sentinel时则无需担心这些。
三、Sentinel的重点实现
1、核心规则控制链路
2、Datasource实现
3、Dashboard与应用的交互
四、Sentinel源码包结构
五、Sentinel的落地问题及改造方案
1、规则数据的读写
public class NacosDataSourceFactoryBean implements FactoryBean<NacosDataSource>
public NacosDataSourceProperties() { super(NacosDataSourceFactoryBean.class.getName());}
2、Metric统计数据及日志的托管
3、Dashboard的适配
4、协议的适配
六、小结
扫一扫,加入技术交流群
评论