asyncio重构Flask接口,QPS从120到850的完整改造记录
一个内部报表API,平均响应时间380ms,QPS卡在120上不去。数据库查询没问题,纯CPU计算密集,GIL锁成了瓶颈。用asyncio + uvloop替换了原来的多线程方案,配合aiohttp纯异步客户端,最终QPS稳定在850左右,P99延迟从520ms降到180ms。这篇文章记录了整个改造过程,包括asyncio.Semaphore控制并发、loop.run_in_executor规避阻

Engineer,重视稳定性、可维护性和效率,主要关注Docker与容器化,分享安全与备份策略、性能优化及真实项目复盘;坚持先理解原理,再讨论工具。欢迎一起交流,也欢迎不同观点。