SpringCloud篇:sentinel中间件的简单使用
Sentinel 是阿里巴巴开源的面向分布式服务架构的流量控制组件,主要以流量为切入点,提供多个维度的流量控制、服务降级、系统自保护等多个功能。
以下是一个使用 Sentinel 的简单示例,演示如何在 Spring Cloud 应用中集成 Sentinel 并配置简单的流量控制规则。
- 在 Spring Cloud 项目的
pom.xml
中添加 Sentinel 依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
- 在
application.yml
配置文件中配置 Sentinel 控制台信息:
spring:
cloud:
sentinel:
transport:
dashboard: 127.0.0.1:8080 # Sentinel 控制台地址
port: 8719 # 默认端口,若控制台端口不同需要修改
- 创建一个 REST 控制器,并定义一个需要被保护的资源:
@RestController
public class TestController {
@GetMapping("/test")
@SentinelResource("test") // 标记为 Sentinel 资源
public String test() {
return "Hello, Sentinel!";
}
}
- 配置流量控制规则。可以在 Sentinel 控制台中手动配置,也可以通过编程的方式进行配置:
@Configuration
public class SentinelConfig {
@PostConstruct
public void init() {
List<FlowRule> rules = new ArrayList<>();
FlowRule rule = new FlowRule();
rule.setResource("test"); // 对应 @SentinelResource 中的 value
rule.setGrade(RuleConstant.FLOW_GRADE_QPS); // 流量控制方式
rule.setCount(1); // 每秒允许通过的请求数
rules.add(rule);
FlowRuleManager.loadRules(rules);
}
}
上述代码中,我们定义了一个名为 "test" 的资源,并通过 @SentinelResource
注解标记它。然后,我们编程配置了一个流量控制规则,限制每秒钟通过的请求数不超过 1 个。这个规则会在应用启动时加载,并在 Sentinel 控制台中显示。
当您启动应用并访问 /test
接口时,Sentinel 会根据配置的规则限制流量,超出规则的请求会被限流。这个简单的例子展示了如何在 Spring Cloud 应用中集成 Sentinel 并设置基本的流量控制规则。
评论已关闭