BBR启示:从拥塞控制到过载保护
距离上一篇记录过载保护的文章再看过载保护,已经过去有6年多了,回看那一篇文章,未免显得青涩,大部分都是错误的
文章核心理论集中在“控制任务队列长度”来规避过载,根据压测得出过载根因:并发上升 → 任务队列长度剧增 → 资源占用加剧 → 响应时间线性增加
看似没啥问题,但是压测是基于grpc服务和net/http服务的
net/http服务显然没有队列概念。grpc也没有内置队列,它主要依赖 HTTP/2 多路复用,在收到请求后就会启动相应的 Goroutine 进行处理