Sentinel Deep Dive: Flow Control, Circuit Breaking & Degradation
This article provides a comprehensive overview of Alibaba’s open‑source Sentinel, detailing its core components, flow‑control strategies—including threshold, multi‑dimensional, hotspot, and adaptive limiting—along with circuit‑breaking and degradation mechanisms, and includes practical Java code examples for integration with Spring Cloud and Dubbo.
Sentinel Overview
Sentinel is an open‑source lightweight traffic‑control component released by Alibaba, designed for microservice architectures. It provides multi‑dimensional protection such as rate limiting, circuit breaking, degradation, and real‑time monitoring, and integrates seamlessly with frameworks like Spring Cloud and Dubbo.
Core Components
Sentinel’s core consists of modules for rule management, flow control, circuit breaking, system adaptive protection, and a dashboard for monitoring and dynamic rule distribution.
Flow Control
Sentinel implements several flow‑control algorithms:
Threshold limiting based on QPS or thread count.
Multi‑dimensional limiting using request source, parameters, etc.
Hotspot parameter limiting for frequently accessed keys, e.g., userId.
System adaptive limiting that adjusts limits according to CPU usage, average response time, and other metrics.
Hotspot Parameter Limiting Example
<ol>
<li>@SentinelResource(value = "getUserInfo", blockHandler = "blockHandlerForHotKey")</li>
<li>public String getUserInfo(@RequestParam String userId) {</li>
<li> return "User: " + userId;</li>
<li>}</li>
<li>public String blockHandlerForHotKey(String userId, BlockException e) {</li>
<li> return "请求过于频繁,请稍后再试";</li>
<li>}</li>
</ol>Circuit Breaking and Degradation
Sentinel monitors exception ratio, exception count, and response time to trigger circuit breaking. When thresholds are exceeded, requests are automatically cut off to protect downstream services and prevent cascade failures.
<ol>
<li>@SentinelResource(value = "orderService", fallback = "fallbackHandler")</li>
<li>public String orderService() {</li>
<li> if (new Random().nextInt(10) > 7) {</li>
<li> throw new RuntimeException("模拟异常");</li>
<li> }</li>
<li> return "下单成功";</li>
<li>}</li>
<li>public String fallbackHandler(Throwable e) {</li>
<li> return "服务繁忙,请稍后重试";</li>
<li>}</li>
</ol>Degradation Strategies
Exception ratio degradation.
Exception count degradation.
Response time degradation.
When a degradation rule is triggered, Sentinel routes the request to a predefined fallback logic (e.g., returning a default value) to keep the core business available.
In summary, Spring Cloud Alibaba Sentinel serves as a comprehensive solution for microservice traffic governance, offering rate limiting, circuit breaking, degradation, and dynamic monitoring to build highly available systems.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Architect Chen
Sharing over a decade of architecture experience from Baidu, Alibaba, and Tencent.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
