Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Sentinel 按 QPS 限流和按并发限流有什么差别?

查看完整题解

参考回答

直接回答

QPS 流控限制每秒放行数,并发流控限制同时执行数。快而密的请求容易先达到 QPS 阈值,少量非常慢的请求也能先占满并发名额。

讲清原理

并发规则根据活跃资源访问计数。进入时增加,退出后归还名额。它可减少慢调用占住应用线程的风险。QPS 模式则控制每秒可以放行多少请求。

例子与易错点

库存最多只允许一个慢查询在途,可设线程数级别、阈值 1。第一个调用退出之前,第二个会收到流控拦截。

Java 21 项目加入 com.alibaba.csp:sentinel-core:1.8.10,导入 Sentinel 的 FlowRule、FlowRuleManager 和 RuleConstant,在创建业务资源之前装载下面这条规则。两个线程各通过 SphU.entry("inventory-query") 进入资源,在退出时关闭 Entry。

var rule = new FlowRule("inventory-query");
rule.setGrade(RuleConstant.FLOW_GRADE_THREAD);
rule.setCount(1);
FlowRuleManager.loadRules(java.util.List.of(rule));

延伸阅读 FlowRule 里哪些字段最重要? · SystemRule 的系统自适应保护管什么? · 高并发下如何用 Sentinel 保住核心服务? · BlockException 怎么捕获和处理?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。