限流系列
高可用之限流-06-slide window 滑动窗口 sentinel 源码
高可用之限流 09-guava RateLimiter 入门使用简介 & 源码分析
分布式系统的设计
在当前的分布式体系中,单机的限流有时候是不准确的,因为它无法准确的反应全局的情况。
防刷/限流+风控+度量+报警 系统都可以简单的抽象为两个部分:
1)指标的采集处理,数据存储的集中式的存储服务(redis/mysql/vm 等)
2) 规则引擎计算是否满足条件
左值的计算 OPERATOR 右值的计算
通过规则引擎,满足条件后再做后续的动作。
整体的流程设计
说明
1)MQ 的作用主要是异步化,可选。比如采用类似于 CAT 这种,client 直接上送到服务端处理。不过在拓展性的角度而言,还是后续引入比较好。
2)分布式系统中,需要一个集中式的存储服务,比如 redis / 时序数据库
3) 不同系统的规则处理后,后置不同。
比如风控系统会有对应的卡拉黑,账户冻结等。
报警系统会有对应的报警信息发送。
度量系统需要有对应的页面展示,开会+处理等等。
限流系统就是限制对应的 ip 等操作
4) 处理的结果和配置应该形成闭环,反馈优化。