微服务是大型架构的核心,下面我重点详解Sentinel @mikechen
Sentinel
Sentinel 是阿里巴巴开源的一款面向微服务架构的,轻量级流量控制组件,
主要用于限流、熔断降级和系统负载保护等多维度保障微服务的稳定性。

Sentinel继承了阿里双十一大促多年的流量控制经验,支持秒杀、流量削峰、集群限流等场景。
并提供实时监控和规则动态下发功能,能与Spring Cloud,Dubbo等主流框架无缝集成。
Sentinel核心
Sentinel 核心,主要由以下组件构成:

Sentinel限流
限流(Flow Control)用于控制请求通过的速率,从而防止突发流量压垮系统。
Sentinel通过多种算法实现流量限制以防过载:
-
阈值限流:基于QPS或线程数的限制,超过阈值请求会被直接拒绝。
-
多维度限流:支持根据请求来源、请求参数等维度细粒度限流。
-
热点参数限流:针对某些热门参数进行限流,避免局部热点导致整体过载。
-
系统自适应限流:结合系统负载、CPU使用率、平均响应时间等指标动态调节入口流量。
比如:置热点参数限流规则后,可实现对不同参数(如 userId)的限流控制。
@SentinelResource(value = "getUserInfo", blockHandler = "blockHandlerForHotKey")
public String getUserInfo(@RequestParam String userId) {
return "User: " + userId;
}
public String blockHandlerForHotKey(String userId, BlockException e) {
return "请求过于频繁,请稍后再试";
}
Sentinel熔断降级
熔断机制,通过监控接口的异常比例、异常数、响应时间等指标。
当触发条件达标时,自动断开请求,保护下游或本服务,避免雪崩效应。
@SentinelResource(value = "orderService", fallback = "fallbackHandler")
public String orderService() {
if (new Random().nextInt(10) > 7) {
throw new RuntimeException("模拟异常");
}
return "下单成功";
}
public String fallbackHandler(Throwable e) {
return "服务繁忙,请稍后重试";
}
其状态包含关闭、开启、半开启三种状态。
降级策略分为:
-
异常比例降级;
-
异常数降级;
-
响应时间降级;
当返回触发条件,服务自动降级到预定义逻辑(例如返回默认值),保障核心业务可用。
一句总结:Spring Cloud Alibaba Sentinel 是微服务流量治理的核心武器。
能为系统提供“限流 + 熔断 + 降级 + 动态监控”的全方位保护,是构建高可用架构的必备组件。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》