1. Sentinel核心概念解析
Sentinel作为分布式系统的流量防卫兵,本质上是一个面向分布式服务架构的轻量级流量控制组件。我第一次接触Sentinel是在处理某电商平台大促期间的秒杀系统时,当时系统频繁出现雪崩效应,而Sentinel的实时熔断功能完美解决了这个问题。
这个组件的核心能力可以概括为"三板斧":流量控制(控制QPS/并发数)、熔断降级(自动阻断不健康服务)、系统自适应保护(根据系统负载动态调整)。与同类产品相比,Sentinel最大的特点是采用了"资源"这一抽象概念——任何需要保护的逻辑单元,无论是RPC接口、方法还是URL,都可以定义为资源并配置独立规则。
重要提示:Sentinel 1.8.0版本后新增的"热点参数限流"功能,能针对同一资源的不同参数值实施差异化控制,这在处理商品详情页这类带参数请求时特别实用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心控制规则详解
2.1 流量控制规则(FlowRule)
流量控制是Sentinel最基础也最常用的功能。其核心参数包括:
- grade:限流阈值类型(QPS/并发线程数)
- count:具体阈值数值
- strategy:基于调用关系(直接/关联/链路)的流控策略
- controlBehavior:流量整形效果(直接拒绝/Warm Up/匀速排队)
实际配置示例:
java复制FlowRule rule = new FlowRule();
rule.setResource("queryOrderInfo");
rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
rule.setCount(20); // 每秒最多20次调用
rule.setControlBehavior(RuleConstant.CONTROL_BEHAVIOR_RATE_LIMITER); // 匀速排队
FlowRuleManager.loadRules(Collections.singletonList(rule));
2.2 熔断降级规则(DegradeRule)
熔断机制是保证系统弹性的关键,Sentinel提供三种熔断策略:
- 慢调用比例(SLOW_REQUEST_RATIO):当响应时间超过阈值的请求比例达到设定值触发
- 异常
