目录
1. 从“慢吞吞”到“风驰电掣”:为啥要优化 API 并发?
2. 认识你的武器:goroutine 和 errgroup 的核心魔法
goroutine:轻量级线程的“分身术”
errgroup:并发任务的“总指挥”
3. 动手实践:用 goroutine 和 errgroup 重构用户中心 API
原始串行代码(反面教材)
优化思路
优化后的代码
代码亮点
性能提升分析
4. 进阶技巧:处理依赖关系和错误细节
依赖关系的并发优化
错误细节优化
5. 性能测试与调优:让你的 API 飞得更快
为什么要做性能测试?
写个基准测试
用 pprof 揪出瓶颈
调优建议
6. 高并发场景的注意事项:别让 goroutine 变成“脱缰野马”
goroutine 泄漏:隐形的性能杀手
资源竞争:别让数据库和 API 打架
限流:保护你的服务器
7. 上下文的高级用法:context 的“魔法棒”
取消机制:让 goroutine 听话
值传递:上下文的“快递员”
超时控制的细化
8. 生产级优化:让你的 API 稳如老狗
日志:API 的“黑匣子”
监控:实时盯着你的 API
错误重试:给下游服务“第二次机会”
9. 其他并发模式对比:goroutine 的“兄弟们”
用 channel 实现并发
用 WaitGroup 完成并发
为啥选 errgroup?
10. 常见坑与最佳实践:别在生产里“翻车”
坑 1:goroutine 泄漏
坑 2:错误吞噬
坑 3:并发数失控
最佳实践
11. 扩展场景:从用户中心到支付、订单的并发优化
支付 API:多服务协同的并发挑战
订单 API:批量任务的并发优化
小结
12. 调试与排障:生产中如何“驯服”并发困难
软件 1:pprof 再登场
器具 2:日志追踪
工具 3:Go 的 runtime 诊断
常见问题与消除
小结
13. 综合案例:打造一个“硬核”组合 API
场景描述
小结
1. 从“慢吞吞”到“风驰电掣”:为啥要优化 API 并发?
想象一下,你是个用户,兴冲冲地登录某个 App,结果点了“登录”按钮后,屏幕卡在那儿,像个老牛车吱吱呀呀半天不动。后台呢?用户中心 API 正慢悠悠地按顺序跑身份认证(50ms)、查用户信息(150ms)、调短信服务验证记录(200ms)。加起来,响应时间轻松突破400ms,用户体验