2016 - 2024

感恩一路有你

创建Spring Cloud Gateway项目

浏览量:4538 时间:2024-08-16 20:41:33 作者:采采

首先,我们需要创建一个Spring Boot项目来搭建Spring Cloud Gateway。在你的IDE中创建一个新的Maven工程,并添加以下依赖:

```xml

spring-boot-starter-webflux

spring-cloud-starter-gateway

spring-cloud-alibaba-gateway

spring-cloud-starter-alibaba-sentinel

spring-cloud-starter-alibaba-nacos-config

```

配置文件

接下来,我们需要创建一个`bootstrap.yml`配置文件,并在其中添加网关、Nacos和Sentinel的相关配置信息,例如:

```yaml

spring:

application:

name: gateway-service

cloud:

gateway:

discovery:

locator:

enabled: true

lower-case-service-id: true

routes:

- id: baidu_route

uri:

predicates:

- Path/baidu/

default-filters:

- StripPrefix1

sentinel:

filter:

enabled: true

transport:

port: 8719

dashboard: localhost:8080

eager:

enabled: true

nacos:

config:

server-addr: localhost:8848

group: DEFAULT_GROUP

namespace: ${}

refreshable-dataids: gateway-service.yaml

```

配置限流规则

在Nacos控制台中创建一个名为`gateway-service.yaml`的配置文件,并在其中定义限流规则,如下所示:

```yaml

spring:

cloud:

gateway:

routes:

- id: baidu_route

filters:

- StripPrefix1

uri:

predicates:

- Path/baidu/

metadata:

flowRules:

- resource: baidu_route

grade: 1

count: 0

```

启动项目并测试限流规则

现在,创建一个Spring Boot启动类,并在其中添加`@EnableDiscoveryClient`、`@SpringBootApplication`和`@EnableFeignClients`注解。然后启动项目。

测试限流规则,我们可以通过访问配置文件中定义的路由路径进行测试。根据上面的配置文件,我们对`/baidu`路径设置了限流规则,允许的请求数量为0。当我们访问`http://localhost:8080/baidu`时,应该会触发限流操作,无法访问百度页面。

动态修改限流规则

如果我们想要动态修改限流规则,只需在Nacos控制台中更新`gateway-service.yaml`文件中的`count`值即可。例如,将`count`值修改为1。这样,我们再次访问`http://localhost:8080/baidu`时,就能正常跳转到百度页面了。

至此,我们成功地使用Spring Cloud Gateway集成Sentinel实现了动态限流功能。通过配置Nacos作为配置中心,我们可以方便地修改限流规则,实现灵活的流量控制。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。