Sentinel简单使用

https://www.cnblogs.com/mc-74120/p/13820212.html

### 使用 Sentinel 实现流量控制 在微服务环境中,Sentinel 提供了一种有效的方法来管理进入系统的流量。通过配置流量控制规则,可以限制每秒处理的最大请求数量,从而防止过载。 对于流量控制的具体实现方式,在 Spring Cloud 应用程序中可以通过定义 `FlowRule` 来指定哪些接口应该受到保护以及如何响应超出阈值的情况[^1]: ```java // 定义一个简单的流量控制器 List<FlowRule> rules = new ArrayList<>(); FlowRule rule = new FlowRule(); rule.setResource("your_api_name"); rule.setGrade(RuleConstant.FLOW_GRADE_QPS); rule.setCount(20); // 设置最大QPS为20 rules.add(rule); FlowRuleManager.loadRules(rules); ``` 这段代码展示了怎样设置针对特定 API 资源的 QPS (Queries Per Second) 限流规则。一旦该资源下的请求速率超过了设定值,则会触发相应的处理逻辑,比如返回错误给客户端或者排队等待执行。 ### 使用 Sentinel 实现熔断降级 除了流量控制外,Sentinel 还支持基于不同条件自动开启熔断器的功能。这有助于快速识别并隔离那些表现不佳的服务组件,减少其对整个应用的影响。 要启用熔断降级特性,同样需要创建对应的 DegradeRule 对象,并将其加载到 Degradation Rule Manager 中去[^4]: ```java DegradeRule rule = new DegradeRule(); rule.setResource("your_service_method"); rule.setCount(5); rule.setTimeWindow(10); rule.setMinRequestAmount(5); rule.setStatIntervalMs(1000); List<DegradeRule> degradeRules = Arrays.asList(rule); DegradeRuleManager.loadRules(degradeRules); ``` 这里展示了一个典型的慢调用比例模式下熔断规则的例子。如果在过去的一分钟内某个方法的成功率低于一定水平(即失败次数超过预设的数量),那么接下来十分钟之内对该方法的所有新请求都将被拒绝,直到观察期结束并且恢复正常操作为止。 ### 配置文件中的集成 通常情况下,上述 Java 代码可以直接嵌入应用程序启动类或者其他合适的地方完成初始化工作;然而更推荐的做法是在 application.yml 或者其他形式的应用配置文件里声明这些参数,以便于管理和维护: ```yaml spring: cloud: sentinel: flow-rules: - resource: your_api_name count: 20 grade: 0 # 表示按QPS限流 degrade-rules: - resource: your_service_method count: 5 time-window: 10 min-request-amount: 5 stat-interval-ms: 1000 ``` 这样不仅简化了编码过程,而且使得调整策略变得更加容易——只需修改几行 YAML 文件即可生效新的变更而无需重新编译部署整个项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello_world!

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值