武功秘籍之限流
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
码农周星星
扫码关注公众号
扫码阅读
手机扫码阅读
限流概述
在高并发环境下,为保证核心服务的稳定性,分布式服务架构设计中需要增加限流模块。本文介绍了三种常用的限流方案,适用于不同的应用场景。
01 - 单机限流
场景描述
对于单实例或少数实例应用,服务可以通过在后端代码中设置固定值来采用单机限流方式,以限制指定接口每秒或每小时的请求总量。
解决方案
单机限流可以采用【自定义注解+AOP+RateLimiter】的组合方式。自定义注解可以方便地配置指定接口为限流接口,AOP可以方便地实现接口的限流统一业务逻辑处理。通过Guava的RateLimiter工具类,基于“令牌桶”算法控制时间内的令牌数量,实现单机限流。
优点和缺点
优点包括开发便捷和使用服务机器内存的高并发效率。缺点包括每次修改限流值需要重启服务,以及不支持分布式环境下的接口总量控制。
实现过程
实现单机限流的过程包括创建自定义限流注解和AOP切面类。自定义注解标记了方法,以便AOP切面类可以实现具体的限流逻辑。AOP切面类中的方法会检查令牌桶中是否有足够令牌供请求使用,若无,则抛出异常,从而实现限流。
码农周星星
码农周星星
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
码农周星星的其他文章
系统架构设计师32小时通关笔记:三、数据库与网络基础知识
第三章主要介绍数据与网络基础知识。
企业可持续发展是穿越周期的 “生存法则”
企业经营中“周期” 是无法避免的规律(如同四季更替),“穿越周期”不是让企业“躲在周期之外”,而是在周期的“低谷、波动、调整”中,依然能保持核心业务存续、核心能力不丢,甚至在周期转向时抓住新机会,实现从“存活”到“增长”的跨越。
开源项目ZXX-CAS系统从零到一|第一篇:需求分析
ZXX-CAS系统是一个什么样的系统呢?为什么要从零到一分享整个这个开源的项目的教程呢?这个系统又能解决什么问题呢?
ES6.3版本踩坑之路-整型字段慢查询导致CPU负载飙升
最近在做用户ES数据合并,将之前多个类型的索引数据合并成一个大的宽表索引,测试环境没有问题,切到线上环境就崩溃了,究竟是什么原因呢?
程序猿生活-五维能力模型
这篇文章主要通过自己总结作为程序猿比较重要的五维能力模型来分析程序猿求职、工作、学习中遇见的一些困惑应该如何去选择,成就最想要的自己。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线