微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

 

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

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

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

以上配置

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

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

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

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

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

总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐