扫码阅读
手机扫码阅读

武功秘籍之限流

240 2024-08-07

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:武功秘籍之限流
文章来源:
码农周星星
扫码关注公众号

限流概述

在高并发环境下,为保证核心服务的稳定性,分布式服务架构设计中需要增加限流模块。本文介绍了三种常用的限流方案,适用于不同的应用场景。

01 - 单机限流

场景描述

对于单实例或少数实例应用,服务可以通过在后端代码中设置固定值来采用单机限流方式,以限制指定接口每秒或每小时的请求总量。

解决方案

单机限流可以采用【自定义注解+AOP+RateLimiter】的组合方式。自定义注解可以方便地配置指定接口为限流接口,AOP可以方便地实现接口的限流统一业务逻辑处理。通过Guava的RateLimiter工具类,基于“令牌桶”算法控制时间内的令牌数量,实现单机限流。

优点和缺点

优点包括开发便捷和使用服务机器内存的高并发效率。缺点包括每次修改限流值需要重启服务,以及不支持分布式环境下的接口总量控制。

实现过程

实现单机限流的过程包括创建自定义限流注解和AOP切面类。自定义注解标记了方法,以便AOP切面类可以实现具体的限流逻辑。AOP切面类中的方法会检查令牌桶中是否有足够令牌供请求使用,若无,则抛出异常,从而实现限流。

想要了解更多内容?

查看原文:武功秘籍之限流
文章来源:
码农周星星
扫码关注公众号