文档章节

zuul进行rate limit

go4it
 go4it
发布于 2017/04/09 15:22
字数 241
阅读 235
收藏 1

##maven

        <dependency>
			<groupId>com.marcosbarbero.cloud</groupId>
			<artifactId>spring-cloud-zuul-ratelimit</artifactId>
			<version>1.0.7.RELEASE</version>
		</dependency>

##配置

product:
  ribbon:
    listOfServers: 192.168.99.100:8080
zuul:
  routes:
    product:
      path: /product/**
      stripPrefix: false
  ratelimit:
    enabled: true #default false
    behind-proxy: true #default false
    policies:
      product:
        limit: 10
        refresh-interval: 120 #60 default value (in seconds)
        type: #optional
          - user
          - origin
          - url
spring:
  redis:
    timeout: 10
    database: 0
    host: 192.168.99.100
    port: 6379
    pool:
      max-active: 8
      max-idle: 8
      max-wait: -1
      min-idle: 0

##filterOrder 类似spring-core-4.3.4.RELEASE-sources.jar!/org/springframework/core/Ordered.java

    /**
	 * Useful constant for the highest precedence value.
	 * @see java.lang.Integer#MIN_VALUE
	 */
	int HIGHEST_PRECEDENCE = Integer.MIN_VALUE;

	/**
	 * Useful constant for the lowest precedence value.
	 * @see java.lang.Integer#MAX_VALUE
	 */
	int LOWEST_PRECEDENCE = Integer.MAX_VALUE;

默认越小优先级越高,排查负数的情况下,0优先级最高

RateLimitFilter com/marcosbarbero/zuul/filters/pre/ratelimit/RateLimitFilter.java 它的order为-1,表示更先执行

##测试

wrk -t12 -c100 -d10s -T30s  --latency http://localhost:8080/product

限流结果:

workspace curl -i http://localhost:8080/product\?debug=true
HTTP/1.1 429
X-Application-Context: application
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 13000
Content-Length: 0
Date: Sun, 09 Apr 2017 06:44:02 GMT

##doc

© 著作权归作者所有

共有 人打赏支持
go4it
粉丝 76
博文 856
码字总数 749595
作品 0
深圳
私信 提问
bucket4j-spring-boot-starter小试牛刀

序 本文主要研究一下如何使用bucket4j-spring-boot-starter进行限流 maven 配置 开启缓存 application.yml 这里设置了名为buckets的缓存,过期时间为1h,容量为1000000 设置的rate-limits每1...

go4it
2018/09/02
0
0
Zuul:构建高可用网关之多维度限流

对请求的目标URL进行限流(例如:某个URL每分钟只允许调用多少次) 对客户端的访问IP进行限流(例如:某个IP每分钟只允许请求多少次) 对某些特定用户或者用户组进行限流(例如:非VIP用户限...

冷冷gg
2017/12/01
0
6
Cisco UBR10012使用DRL保护cpu,防止high cpu问题

Cisco UBR10012在日常维护的过程中出现high cpu问题,经检查是DHCPD Receive进程占用过高。 说明设备受到了过量的DHCP报文,为避免影响正常业务流量,配置DRL(Divert Rate Limit)对 UBR100...

anrbin
2017/05/16
0
0
Spring Cloud Gateway 限流操作

开发高并发系统时有三把利器用来保护系统:缓存、降级和限流,API网关作为所有请求的入口,请求量大,我们可以通过对并发访问的请求进行限速来保护系统的可用性。 常用的限流算法比如有令牌桶...

尹吉欢
2018/07/23
0
0
cisco对某一IP的限速

只有支持思科快速转发(CEF)的路由器或者交换机才能用rate-limit限制流量 一、全局开始CEF Router(conf)#ip cef 二、定义标准或者扩展访问列表 Router(conf)#access-list 111 permit ip 192...

aloofcn
2013/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxprobe16
29分钟前
0
0
OSChina 周日乱弹 —— 没时间 没头发 但有钱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @开源中国总经办主任 :分享齐一的单曲《这个年纪》 《这个年纪》- 齐一 手机党少年们想听歌,请使劲儿戳(这里) @肿肿卷 :我真的可以睡一天...

小小编辑
今天
41
4
Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
3
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部