創(chuàng)建Spring Cloud Gateway項目
首先,我們需要創(chuàng)建一個Spring Boot項目來搭建Spring Cloud Gateway。在你的IDE中創(chuàng)建一個新的Maven工程,并添加以下依賴:```xml
首先,我們需要創(chuàng)建一個Spring Boot項目來搭建Spring Cloud Gateway。在你的IDE中創(chuàng)建一個新的Maven工程,并添加以下依賴:
```xml
```
配置文件
接下來,我們需要創(chuàng)建一個`bootstrap.yml`配置文件,并在其中添加網(wǎng)關、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
```
配置限流規(guī)則
在Nacos控制臺中創(chuàng)建一個名為`gateway-service.yaml`的配置文件,并在其中定義限流規(guī)則,如下所示:
```yaml
spring:
cloud:
gateway:
routes:
- id: baidu_route
filters:
- StripPrefix1
uri:
predicates:
- Path/baidu/
metadata:
flowRules:
- resource: baidu_route
grade: 1
count: 0
```
啟動項目并測試限流規(guī)則
現(xiàn)在,創(chuàng)建一個Spring Boot啟動類,并在其中添加`@EnableDiscoveryClient`、`@SpringBootApplication`和`@EnableFeignClients`注解。然后啟動項目。
測試限流規(guī)則,我們可以通過訪問配置文件中定義的路由路徑進行測試。根據(jù)上面的配置文件,我們對`/baidu`路徑設置了限流規(guī)則,允許的請求數(shù)量為0。當我們訪問`http://localhost:8080/baidu`時,應該會觸發(fā)限流操作,無法訪問百度頁面。
動態(tài)修改限流規(guī)則
如果我們想要動態(tài)修改限流規(guī)則,只需在Nacos控制臺中更新`gateway-service.yaml`文件中的`count`值即可。例如,將`count`值修改為1。這樣,我們再次訪問`http://localhost:8080/baidu`時,就能正常跳轉到百度頁面了。
至此,我們成功地使用Spring Cloud Gateway集成Sentinel實現(xiàn)了動態(tài)限流功能。通過配置Nacos作為配置中心,我們可以方便地修改限流規(guī)則,實現(xiàn)靈活的流量控制。