返回
Sentinel集成SpringCloudGateway的原理与实现
后端
2023-12-20 10:44:52
前言
Sentinel是一个轻量级的分布式流量控制组件,可以用来保护服务免受过载的影响。Sentinel可以与多种框架集成,包括SpringCloudGateway。SpringCloudGateway是一个API网关,可以用来控制对服务的访问。本文将介绍如何将Sentinel集成到SpringCloudGateway中,并实现网关普通流控和网关热点参数流控。
Sentinel集成SpringCloudGateway
1. 依赖导入
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
2. 配置Sentinel
sentinel:
transport:
dashboard: localhost:8080
web-context-unify: false
3. 注册Sentinel过滤器
@Bean
public SentinelGatewayFilter sentinelGatewayFilter() {
return new SentinelGatewayFilter();
}
网关普通流控
1. 配置流控规则
sentinel:
block-rules:
- grade: 0
strategy: ControlBehavior:default
limitApp: default
resource: urlPattern: /**
count: 100
2. 测试流控
curl http://localhost:8080/test
网关热点参数流控
1. 配置流控规则
sentinel:
block-rules:
- grade: 0
strategy: HotParamFlow
limitApp: default
resource: urlPattern: /**
paramItem:
- name: userId
parseStrategy: common
pattern: \d+
matchStrategy: substring
count: 100
2. 测试流控
curl http://localhost:8080/test?userId=1
总结
本文介绍了如何将Sentinel集成到SpringCloudGateway中,并实现网关普通流控和网关热点参数流控。Sentinel是一个非常强大的流量控制组件,可以用来保护服务免受过载的影响。SpringCloudGateway是一个非常流行的API网关,可以用来控制对服务的访问。将Sentinel集成到SpringCloudGateway中,可以实现对API网关的流量控制,从而保护服务免受过载的影响。