当前位置:首页 >专题 >Go 并发治理实战
Go 并发治理实战
从请求生命周期、并发扇出到限流、连接池和上线清单
实战
中级
约420分钟
20浏览
这个专题面向已经写过 Go Web 服务、准备把接口稳定性带到生产环境的开发者。它不重复语法入门,而是把 goroutine 生命周期、并发扇出、入口限流、缓存击穿、HTTP/SQL 下游超时、连接池预算、泄漏排查和上线检查串成一条完整路线。
学习建议:建议按顺序阅读:先建立请求生命周期和 context 边界,再学习 errgroup、singleflight、rate.Limiter 等工具;随后进入 HTTP、数据库和重试降级,最后用监控、优雅停机和上线清单完成闭环。
20精选资源
20必学条目
4学习模块
7预计小时
第一阶段:建立并发边界
先把请求生命周期、取消和并发扇出管住
文章
初级
必学
Go 并发治理入门:先管请求生命周期,再谈 goroutine 数量
把一次请求拆成入口、并发扇出、下游调用、取消和收尾几个阶段,建立并发治理的全局视角。
推荐理由:这是整个专题的总览,先确定治理目标和边界。
文章
中级
必学
Go errgroup 实战:并发扇出时别丢掉错误和取消
使用 errgroup.WithContext 同时启动多个下游任务,并在任一任务失败时取消其它任务。
推荐理由:并发扇出是服务聚合接口最常见的模式。
文章
中级
必学
Go errgroup SetLimit:给并发扇出加一个硬上限
用 SetLimit 控制同一次请求内的并发度,避免批量扇出把下游打穿。
推荐理由:它把“能并发”推进到“可控地并发”。
文章
初级
必学
Go context 超时控制:把 deadline 传到每个下游调用
用 context.WithTimeout 统一请求 deadline,并在下游函数中正确响应取消。
推荐理由:超时是所有并发治理策略的地基。
文章
中级
必学
Go singleflight:热点缓存失效时只让一个请求回源
用 singleflight 合并同 key 的并发请求,降低缓存击穿时的下游压力。
推荐理由:热点请求合并是高并发接口必须掌握的技巧。
第二阶段:流量与队列治理
让入口、后台任务和 channel 都有容量意识
文章
中级
必学
Go rate.Limiter:用令牌桶把入口流量变成可承受的速度
理解 Allow、Wait、Reserve 和 Burst 的区别,给接口加上可解释的限流策略。
推荐理由:入口流量可控,后面的并发治理才有意义。
文章
中级
必学
Go worker pool:别让后台任务无限制创建 goroutine
用固定 worker 数量和任务队列控制后台并发,避免任务高峰拖垮进程。
推荐理由:后台任务是 goroutine 泄漏和内存抖动的高发区。
文章
中级
必学
Go channel 背压:让生产速度服从消费能力
通过有界 channel、select 和 context,把压力显式传回生产端。
推荐理由:背压能防止系统在峰值时悄悄积压到崩溃。
文章
中级
必学
Go HTTP Client 超时:别让默认客户端拖住 goroutine
配置 http.Client 和 Transport 超时,避免下游慢响应占满资源。
推荐理由:HTTP 下游没有超时,是线上 goroutine 堆积的常见原因。
文章
高级
必学
Go Transport 连接复用:高并发下别把短连接当默认答案
理解 MaxIdleConns、MaxIdleConnsPerHost 和 MaxConnsPerHost,减少连接抖动。
推荐理由:连接复用直接影响延迟和下游压力。
第三阶段:下游依赖保护
数据库、重试、降级和泄漏排查
文章
高级
必学
Go database/sql 连接池:MaxOpenConns 不是越大越好
用 MaxOpenConns、MaxIdleConns 和 DBStats 控制数据库并发。
推荐理由:数据库连接池是并发治理落到资源层的关键。
文章
中级
必学
Go SQL 查询取消:让慢查询跟着请求一起停
在 database/sql 中使用 QueryContext、ExecContext 和事务 context。
推荐理由:它补齐数据库层的取消边界。
文章
高级
必学
Go goroutine 泄漏排查:用 pprof 找到没有退出的人
通过 goroutine profile、阻塞栈和请求路径定位泄漏来源。
推荐理由:泄漏排查是并发治理上线后的必备能力。
第四阶段:生产闭环
共享状态、流水线、停机、监控和发布清单
文章
高级
必学
Go fan-in/fan-out 模式:并发流水线如何正确收口
设计生产者、多个 worker 和结果聚合时,重点处理关闭、错误和取消。
推荐理由:复杂并发流水线需要可预测的关闭协议。
文章
中级
必学
Go 优雅停机:让正在处理的请求有机会收尾
使用 http.Server.Shutdown、context 和后台任务退出协议完成安全发布。
推荐理由:发布和扩容时,停机路径也是并发治理的一部分。
文章
高级
必学
Go 并发治理上线清单:从代码到压测的 20 个检查点
整理并发治理上线前必须确认的 context、限流、连接池、降级和监控事项。
推荐理由:用清单把前 19 篇文章收束成可执行流程。
相关专题
继续沿着相近方向学习
专题信息
专题类型实战
适合阶段中级
学习时长420分钟
发布时间2026-06-09
查看更多
最新文章
-
- Python Celery 5.4 实战:任务重试前先把幂等做好
- 18小时前 340浏览
-
- MySQL 8.4 内部临时表实战:GROUP BY 一慢就先查 TempTable 有没有落盘
- 18小时前 267浏览
-
- Python 内存泄漏排查实战:用 tracemalloc 找到失控引用
- 19小时前 230浏览
-
- Python logging 实战:用 contextvars 把 request_id 串到底
- 22小时前 427浏览
-
- MySQL 8.4 Change Buffer 实战:批量写入为什么没有把二级索引拖垮
- 22小时前 270浏览
-
- Java 25 Stable Values 实战:别再用双重检查锁写懒加载
- 22小时前 121浏览
-
- Go rate.Limiter 实战:别让限流器写成摆设
- 4天前 441浏览

