返回

Sentinel集成SpringCloudGateway的原理与实现

后端


前言

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网关的流量控制,从而保护服务免受过载的影响。