1.application.yml配置

server:
  port: 9000
spring:
  application:
    name: sca-gateway
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    sentinel:
      transport:
        dashboard: localhost:8180  #
      eager: true
    gateway:
      routes: #配置网关路由规则
        - id: route01  #路由id,自己指定一个唯一值即可
          #uri: http://localhost:8081/ #网关帮我们转发的url
          uri: lb://sca-provider #lb表示负载均衡,sca-provider为服务名
          predicates: ###断言(谓此):匹配请求规则(进行逻辑判断) 
            - Path=/nacos/provider/echo/**  #请求路径定义,此路径对应uri中的资源
            #- Query=pageSize,\d+
          filters: ##网关过滤器,用于对谓词中的内容进行判断分析以及处理
            - StripPrefix=1 #转发之前去掉path中第一层路径,例如nacos

拦截机制
当我们在访问 http://localhost:9000/nacos/provider/echo/01 时会被 route01 路由拦截,
拦截后方问uri:** http://localhost:8081/**这个地址,
拦截机制 负载均衡机制
或uri: lb://sca-provider ** lb表示负载均衡,sca-provider为服务名
过滤机制
我们打开浏览器输入http://localhost:9000/nacos/provider/echo/01时,网关会基于predicates对象对请求url基于predicates中的定义path进行比对,假如请求url端口号后面的内容,与predicates中path的定义是匹配的,此时会将url交给filters进行过滤,过滤器filter对请求过滤后,会将请求地址转发到真实的微服务(通过uri指定)
过滤路径
StripPrefix=1 #转发之前去掉path中第一层路径,例如nacos
如果StripPrefix=2 表示前两层路径自动去掉
1.1效果图

在这里插入图片描述

2.sentinel控流配置

2.1 启动 gateway
在这里配置Edit Configurations
在这里插入图片描述

-Dcsp.sentinel.app.type=1

在这里插入图片描述
2.2 Sentinel控制台配置
2.2.1 Route ID 配置

当配置都没有错时,请求链路会出现 在application.yml配置中的 routes 的id 名称 route01
只需配置QPS阈值保存,多点几下会出现下面的效果
在这里插入图片描述

2.3 Postman测试 针对请求属性
1.勾选 针对请求属性
2.填写 Header名称 自定义名称
3. 勾选 属性匹配
4. 匹配模式自选 匹配串:自定义
5. QPS:1 新增.

在这里插入图片描述
2.3.1 打开:Postman
1.输入url : http://localhost:9000/nacos/provider/echo/a
2.选中 Postman 中的 Header 选项
3.填写KEY token VALUE 123456 这里的key和sentinel中Header名称一致,value和sentinel中匹配串一致
4.对次点击Send 出现下面效果即可
在这里插入图片描述

3.sentinel API控流分组配置

3.1 Sentinel控制台配置
0.点击 新增API分组
1.API名称 自定义
2.匹配模式自选 匹配串填写url 访问路径 /nacos/provider/echo/a
可以添加多个.
在这里插入图片描述
3.然后回到请求链路 点击流控
在这里插入图片描述
3.2 Postman测试
下面这两图的区别是访问的url
因为我们给他API分组进行流控所以只有他俩不能访问,其他地址都可访问

下图访问路径: http://localhost:9000/nacos/provider/echo/a
在这里插入图片描述
下图访问路径: http://localhost:9000/nacos/provider/echo/aa
在这里插入图片描述
下图访问路径: http://localhost:9000/nacos/provider/echo/c
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐