zuul实现的限流

限流一般可以根据客户端IP,请求的URL,用户登陆信息进行限制,每秒钟限制多次数,这从别一方面也提升了系统的性能,无用的并发没那么多了。

依赖包

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
        </dependency>
        <dependency>
            <groupId>com.marcosbarbero.cloud</groupId>
            <artifactId>spring-cloud-zuul-ratelimit</artifactId>
            <version>1.3.2.RELEASE</version>
        </dependency>

zuul的配置

zuul:
  routes: #实现了反向代码和负载均衡,负载均衡采用轮询的方式实现
    a:
      path: /a/**
      sensitiveHeaders: "*" #不过滤任何头信息
      serviceId: servicea
    b:
      path: /b/**
      sensitiveHeaders: "*"
      serviceId: serviceb
    c:
      path: /c/**
      sensitiveHeaders: "*"
      serviceId: servicec
  add-proxy-headers: false
  stripPrefix: true #为true的情况下:向后端转发之后是不会携带 '/a' 的。为 false 则相反

ratelimit限制配置

ratelimit:
  enabled: true
  repository: REDIS #使用redis存储,一定要大写!
  policies:
    a: #针对上面那个服务的限流
      limit: 100 #每秒多少个请求
      refreshInterval: 60 #刷新时间窗口的时间,默认值 (秒)
      type:
        - ORIGIN #这里一定要大写,类型说明:URL通过请求路径区分,ORIGIN通过客户端IP地址区分,USER是通过登录用户名进行区分,也包括匿名用户

这样,服务a的限流就做好了!

posted @   张占岭  阅读(2388)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2016-10-17 爱上MVC~为Html.EditorForModel自定义模版
2013-10-17 将不确定变为确定~类中的属性何时被执行
点击右上角即可分享
微信分享提示