当前位置 : 主页 > 编程语言 > 其它开发 >

SpringCloud如何限流控制以及一些相关的策略分享

来源:互联网 收集:自由互联 发布时间:2022-07-12
上面的文章演示了网关某些功能的自定义开发。API网关还起到流量输入的作用。为了保护后端微服务不被峰值流量淹没,API网关可以进行限流、融合和降级。熔断和劣化由hystrix等组件支

上面的文章演示了网关某些功能的自定义开发。API网关还起到流量输入的作用。为了保护后端微服务不被峰值流量淹没,API网关可以进行限流、融合和降级。熔断和劣化由hystrix等组件支持,电流限制策略还包括RequestRateLimitor。本文主要演示如何定制限流策略。在学习自定义限流策略后,您可以开发更多功能来满足您的业务需求。

1、新加入一个限流过滤器

此筛选器可以限制每秒的请求数。如果数字超过指定的数字,它将返回429状态代码。

 

上面配置了demoratelimitpermitsecond流限制策略,每秒1个请求

2、验证每秒当前限制策略

在浏览器中输入http://localhost:8081/baidu,按F5刷新数次

以上配置

Demoratelimitpersecond电流限制策略,每秒10个请求

Demoratelimitperday电流限制策略,每天2个请求

预期结果是,它可以通过每秒10个请求的限制,但不能通过每天2个请求的限制。(当然,此限制仅用于演示。在实际业务中,每天的请求数通常高于每秒的请求数。)

上图的出现表明当前的限制策略已经生效。

如果要验证详细信息,可以在相应的过滤器中打断点以查看特定次数,控制台还将输出请求数

总结

上面演示了如何在网关中实现自定义流限制策略,以及如何在每秒钟和每天简单地实现流限制算法。在掌握了它之后,您可以结合您的实际业务场景愉快地开发它。网关本身也提供了一些强大的流限制策略,例如令牌桶算法的流限制策略,令牌桶算法是基于redis的漏桶算法。下一篇文章将重点介绍网关的令牌桶算法策略。

网友评论