Sentinel 结合 GateWay 限流

简介: Sentinel 结合 GateWay 限流

Sentinel 不仅仅可以可以作用于服务之间,还可以完美的和服务网关 GateWay 或者 Zuul 一起使用来对网关实现流控。从 1.6.0 版本开始,Sentinel 提供了 Spring Cloud Gateway 的适配模块,可以提供两种资源维度的限流:


  • route 维度:即在 Spring 配置文件中配置的路由条目,资源名为对应的 routeId。
  • 自定义 API 维度:用户可以利用 Sentinel 提供的 API 来自定义一些 API 分组。


引入依赖


使用时需引入以下模块(以 Maven 为例):


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


YML 配置


需要配置 sentinel 的控制台地址,用来同步规则配置信息;还有就是需要配置 Nacos 来获取服务列表;还有就是配置服务网关的路由信息。


    server:  port: 2001spring:  application:    name: gateway-service  profiles:    active: dev  cloud:    # 注册中心    nacos:      discovery:        server-addr: 127.0.0.1:8848    # 流控配置    sentinel:      transport:        port: 8719        dashboard: localhost:8080      # 降级策略      scg:        fallback:          mode: response          response-status: 426          response-body: error request    # 网关配置    gateway:          routes:            - id: stock_route              uri: lb://stock-service              predicates:                - Path=/stock/**


    启动网关


    在 API Gateway 端,用户只需要在原有启动参数的基础上添加如下启动参数即可标记应用为 API Gateway 类型:


      -Dcsp.sentinel.app.type=1


      配置流控规则


      我们可以在 Sentinel 的管理后台对我们之前添加的 stock_route 增加流控规则配置


      sentinel 结合 gateway 限流设置.png

      树状视图

      列表视图

      gateway-service

      新增流控规则

      旅点链路

      关键字

      刷新

      资源名

      stockroute

      操作

      分钟拒绝

      0

      sentineldefaultcol

      +流控

      +搜权

      +热点

      降级

      针对来源

      default

      5

      sentinelgateway

      +授权

      流控

      热点

      +降级

      单机阁值

      闲值类型

      单机闽值

      线程数

      QPS

      设置限制

      5

      stockroute

      +授权

      流控

      热点

      +降级

      对应路由ID是否集群

      条记录

      共3条记录,每页

      16

      高级选项

      新增并继续添加

      新增

      取消


      总结


      我们通过Sentinel 和 Gateway 的整合,我们可以轻松的设置一个服务集群,或者多个服务的访问入口流量控制。


      此处只是简单的实现了错误信息的返回,对于自定义异常信息的处理,以及更多的生产复杂情况,我们更多的是和结合 Sentinel 本身提供的一些功能来响应实际问题,以及结合设计者的设计思想,我们可以通过修改源码或者在拓展点进行拓展来让 Sentinel 更好的服务于我们的生产。


      相关文章
      |
      7月前
      |
      算法 NoSQL API
      SpringCloud&Gateway网关限流
      SpringCloud&Gateway网关限流
      323 7
      |
      7月前
      |
      Java 数据安全/隐私保护 Sentinel
      面试官:Sentinel是如何实现限流的?
      面试官:Sentinel是如何实现限流的?
      827 1
      |
      6月前
      |
      监控 Java Sentinel
      使用Sentinel进行服务调用的熔断和限流管理(SpringCloud2023实战)
      Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
      158 3
      |
      5月前
      |
      监控 算法 Java
      高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
      高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
      |
      6月前
      |
      监控 Java API
      5.Gateway之限流、熔断
      5.Gateway之限流、熔断
      170 0
      |
      6月前
      |
      Java Nacos Maven
      Sentinel1.8.6更改配置同步到nacos(项目是Gateway)
      Sentinel1.8.6 nacos springcloud springcloud-alibaba gateway
      286 0
      |
      7月前
      |
      Java 数据安全/隐私保护 Sentinel
      微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
      微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
      |
      7月前
      |
      SpringCloudAlibaba 监控 Java
      SpringCloud Alibaba Sentinel实现熔断与限流--学习笔记
      SpringCloud Alibaba Sentinel实现熔断与限流--学习笔记
      110 0
      |
      7月前
      |
      监控 算法 Java
      sentinel 服务限流工作原理
      sentinel 服务限流工作原理
      |
      7月前
      |
      监控 Java API
      Sentinel熔断限流真的太丝滑了
      Sentinel熔断限流真的太丝滑了
      180 0