项目背景与需求
- 项目名称:充电桩项目
- 升级:进行微服务架构升级
- 关键功能:短信服务,用于用户登录、注册等
短信功能设计考虑
- 短信模板存储:需考虑存储方式
- 发送次数限制:防止恶意攻击,设计60秒内只能发送一次短信
- 成本问题:短信成本累积,需考虑限制发送次数以控制成本
分布式限流技术概述
- 目的:防止恶意用户频繁发送短信导致成本上升
- 限流方案:列举了五种不同的限流技术及其适用场景
限流方案详解
- 基于令牌桶算法:简单,平滑限流,但不适合瞬时流量突增
- 基于漏桶算法:简单,平滑限流,但粒度较粗
- 基于计数器的限流:控制请求速率,但可能因流量突增导致系统压力
- 基于分布式缓存的限流:适用于大规模分布式系统,但依赖缓存系统
- 基于流量控制网关的限流:集中管理流量,适用于大规模系统,但增加系统复杂性
限流算法比较
- 固定速率(Fixed):简单,预测性强,但不灵活,无法应对突发流量
- 滑动窗口速率(Sliding Window):灵活,资源利用率高,但实