Sentinel 是 Alibaba 提供的面向分布式服务架构的轻量级流量控制框架,主要以流量为切入点,提供多维度流量控制、服务熔断、服务降级等功能。
以下是 Spring Cloud Alibaba Sentinel 的使用示例:
引入依赖
在项目的
pom.xml
文件中添加 Sentinel 的依赖:
<dependencies>
<!-- Spring Cloud Alibaba Sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
</dependencies>
配置 Sentinel 控制台
在
application.yml
或application.properties
文件中配置 Sentinel 控制台信息:
spring:
cloud:
sentinel:
transport:
dashboard: 127.0.0.1:8080 # Sentinel 控制台地址
port: 8719 # 默认端口,可以不配置
使用注解定义资源
在你的服务代码中,使用
@SentinelResource
注解来标记需要流量控制的代码块:
import com.alibaba.csp.sentinel.annotation.SentinelResource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test")
@SentinelResource(value = "test", blockHandler = "handleException")
public String test() {
return "Test Sentinel";
}
public String handleException(BlockException ex) {
return "Error: " + ex.getMessage();
}
}
配置规则
Sentinel 提供多种规则配置方式,比如使用控制台、使用文件配置、使用 API 配置。以下是通过控制台配置规则的例子:
- 登录 Sentinel 控制台;
- 选择对应的资源;
- 配置流量控制规则、熔断降级规则等。
启动服务并访问接口
启动你的服务,并通过调用接口来触发流量控制规则,观察 Sentinel 控制台上的实时数据和规则配置变化。
以上是 Spring Cloud Alibaba Sentinel 的基本使用方法,实际使用时可以根据具体需求进行规则的调整和高级配置。