上面的文章演示了网关某些功能的自定义开发。API网关还起到流量输入的作用。为了保护后端微服务不被峰值流量淹没,API网关可以进行限流、融合和降级。熔断和劣化由hystrix等组件支
上面的文章演示了网关某些功能的自定义开发。API网关还起到流量输入的作用。为了保护后端微服务不被峰值流量淹没,API网关可以进行限流、融合和降级。熔断和劣化由hystrix等组件支持,电流限制策略还包括RequestRateLimitor。本文主要演示如何定制限流策略。在学习自定义限流策略后,您可以开发更多功能来满足您的业务需求。
1、新加入一个限流过滤器此筛选器可以限制每秒的请求数。如果数字超过指定的数字,它将返回429状态代码。
上面配置了demoratelimitpermitsecond流限制策略,每秒1个请求
2、验证每秒当前限制策略在浏览器中输入http://localhost:8081/baidu,按F5刷新数次
以上配置
Demoratelimitpersecond电流限制策略,每秒10个请求
Demoratelimitperday电流限制策略,每天2个请求
预期结果是,它可以通过每秒10个请求的限制,但不能通过每天2个请求的限制。(当然,此限制仅用于演示。在实际业务中,每天的请求数通常高于每秒的请求数。)
上图的出现表明当前的限制策略已经生效。
如果要验证详细信息,可以在相应的过滤器中打断点以查看特定次数,控制台还将输出请求数
上面演示了如何在网关中实现自定义流限制策略,以及如何在每秒钟和每天简单地实现流限制算法。在掌握了它之后,您可以结合您的实际业务场景愉快地开发它。网关本身也提供了一些强大的流限制策略,例如令牌桶算法的流限制策略,令牌桶算法是基于redis的漏桶算法。下一篇文章将重点介绍网关的令牌桶算法策略。