本文主要是介绍[zebra源码]流控设计,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
之所以要进行流量控制,是要避免业务应用流出量倾斜,超过分库能承载的压力
zebra的限流架构
粒度
- 指定要保护的db节点
- 指定要流控的应用ip
- 指定sqlId, 计算规则: sqlId = MD5(/appName/{mapper方法}).subString(0, 8)
限流策略:
- autoControl 自动限流, 失败率达到一定的阈值后触发 小于的时候逐步恢复(线性、指数)
- forceControl 强制限流,会对所有连接进行过滤,立即将流量降到下限; 用于紧急情况,需要手动开启和关闭
流程的处理收拢在 WallFilter(实现JdbcFilter的 processSql方法)
更详细的说明: 参见官方 zebra流量控制
这篇关于[zebra源码]流控设计的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!