服务自适应降载保护设计
设计目的
- 保证系统不被过量请求拖垮
- 在保证系统稳定的前提下,尽可能提供更高的吞吐量
设计考虑因素
- 如何衡量系统负载
- 是否处于虚机或容器内,需要读取cgroup相关负载
- 用1000m表示100%CPU,推荐使用800m表示系统高负载
- 尽可能小的Overhead,不显著增加RT
- 不考虑服务本身所依赖的DB或者缓存系统问题,这类问题通过熔断机制来解决
机制设计
降载的使用
- 已经在rest和zrpc框架里增加了可选激活配置
- CpuThreshold,如果把值设置为大于0的值,则激活该服务的自动降载机制
- 如果请求被drop,那么错误日志里会有
dropreq
关键字
参考资料
项目地址
https://github.com/tal-tech/go-zero
好未来技术
原文链接:http://www.cnblogs.com/kevinwan/p/13857358.html