欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

入门指南:09 微服务中 Sentinel 与 Gateway 的集成——第二部分:基础使用

最编程 2024-01-27 14:15:05
...

首先我们有9999网关服务和9001服务

2.1 网关服务添加依赖

<dependency>  
    <groupId>com.alibaba.cloud</groupId>  
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>  
</dependency>  
<dependency>  
    <groupId>com.alibaba.csp</groupId>  
    <artifactId>sentinel-spring-cloud-gateway-adapter</artifactId>  
</dependency>  
<dependency>  
    <groupId>com.alibaba.cloud</groupId>  
    <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>  
</dependency>

2.2 网关服务配置

server:  
  port: 9999  
spring:  
  application:  
    name: cloud-getway-service  
  cloud:  
    nacos:  
      discovery:  
        server-addr: localhost:8848  
    sentinel:  
      transport:  
        dashboard: localhost:8080  
        port: 8719  
    gateway:  
      discovery:  
        locator:  
          enabled: true #开启从注册中心动态创建路由的功能,利用微服务名进行路由  
      routes:  
        - id: nacos-payment-provider  
          uri: http://localhost:9001/nacos-payment-provider  
          predicates:  
            - Path=/test/**

2.3 Sentinel控制台增加对应的流控

2.3.1 按照Route ID 进行流控

这将会会整个微服务限流,不推荐

此时的设置为针对 nacos-provider这个路由id对应的流控类型为qps,阈值为1。
间隔:当每秒的请求超过QPS值,启动间隔。1秒内所有调用这个接口直接返回。不去调用业务代码。
Burst size: 应对突发请求时额外允许的请求数目。

注意: 这个Burst size 有个tips.通过的请求等于QPS阈值+Burst size 总请求数量

image.png

我们快速访问浏览器结果如下
image.png

2.3.2 API分组

这里对应API名称可以随意编写:分组的意思就是可以将一类的流控接口变成一个API分组,这里有三种方式

精准:精准匹配对应的请求地址

前缀:匹配对应的地址前缀

正则:通过正则的方式匹配

2.3.2.1 精准匹配

image.png

image.png

image.png
此时我们疯狂点击9001服务的其他端口,正常访问无限制

image.png

2.3.2.2 前缀演示

我们针对/test/login/123 或者 /test/login/v1/** 匹配后缀

image.png

image.png

疯狂点击浏览器即可
image.png

2.3.2.3 正则表达式

image.png

image.png

image.png

如果对你有帮助,可以关注博主(不定期更新各种技术文档) 给博主一个免费的点赞以示鼓励,谢谢 ! 欢迎各位????点赞????评论收藏⭐️