2025-07-28 start:
Sentinel 限流和熔断原理
限流原理
Sentinel 的限流(Flow Control)主要通过以下几种算法实现:
- 
滑动窗口算法:
- 
将时间划分为多个小窗口,统计每个窗口的请求量
 - 
通过滑动的方式合并多个小窗口的统计数据,实现更平滑的限流
 
 - 
 - 
令牌桶算法:
- 
系统以恒定速率向桶中添加令牌
 - 
请求到达时,必须获取令牌才能通过
 - 
当令牌不足时触发限流
 
 - 
 - 
漏桶算法:
- 
请求像水一样流入漏桶,漏桶以固定速率流出请求
 - 
当桶满时,新请求被限流
 
 - 
 - 
热点参数限流:
- 
对特定参数(如用户ID、商品ID)进行细粒度限流
 - 
统计不同参数值的请求量,对热点参数单独限流
 
 - 
 
熔断原理
Sentinel 的熔断(Circuit Breaking)基于以下几种策略:
- 
慢调用比例熔断:
- 
统计单位时间内慢调用的比例
 - 
当比例超过阈值且请求数达到最小请求数时触发熔断
 - 
熔断时长后进入半开状态,试探性允许部分请求通过
 
 - 
 - 
异常比例熔断:
- 
统计单位时间内异常调用的比例
 - 
当比例超过阈值且请求数达到最小请求数时触发熔断
 
 - 
 - 
异常数熔断:
- 
统计单位时间内的异常数量
 - 
当异常数超过阈值时触发熔断
 
 - 
 
工作流程
- 
资源定义:为需要保护的代码块定义资源(如URL、方法调用等)
 - 
规则配置:为资源配置限流规则或熔断规则
 - 
指标统计:实时统计资源的QPS、响应时间、异常率等指标
 - 
规则检查:根据统计指标检查是否触发规则
 - 
规则执行:触发限流或熔断时执行预定义的行为(如直接拒绝、降级等)
 - 
状态恢复:熔断器会在设定的时间后进入半开状态尝试恢复
 
Sentinel 通过这种机制实现了对系统流量的精确控制,防止系统因过载而崩溃。
end
下载dashboard服务:Release v1.8.6 · alibaba/Sentinel · GitHub
将sentinel-dashboard-1.8.6.jar放到服务器的/opt/sentinel(没有就创建)
执行命令:nohup java -jar sentinel-dashboard-1.8.6.jar & 后台运行
访问:http://【ip】:8080/#/login

看到这个界面就表示已经安装完成了。
账号密码:sentinel/sentinel