Canva Engineering - Backend

1 篇内容

工程实践Canva Engineering - Backend

Worker Backpressure (Part 1)

文章介绍 Canva 为队列 worker 设计的 Worker Backpressure 机制:它是队列库内置的反馈回路,worker 记录每次依赖调用的成功/失败结果,由可插拔控制器根据错误率与设定点维护 0.0–1.0 的 backoff factor,并据此动态缩减可并发拉取和处理的 permit 数量,从而在依赖异常时主动降速、恢复后自动提速。机制完全本地、无外部协调器和额外网络调用,运行时仅两次算术操作。两起生产事故验证了效果:云厂商故障约 4 小时内 DLQ 仅增长 1 条,持续过载 32.5 小时内 1.8 百万次失败尝试仅 22 条进入 DLQ,吞吐仍高于事故前基线。作者也指出吞吐成本、单信号(成功/失败)作为依赖健康代理的局限,并预告 Part 2 展开控制器算法与调参。

推荐收录:文章给出真实生产事故中的量化前后对照,而不仅是概念介绍,并清楚说明反馈回路、并发 permit、设定点和本地化实现等工程取舍。适合后端、基础设施、SRE 和消息队列开发者阅读,可迁移到异步 worker 的依赖保护、DLQ 抑制与自适应限流设计中。注意 Part 1 未公开控制器算法与调参细节,且全容量 worker 会承担吞吐下降风险。