asyncio重构Flask API:并发等待缩短至1.2秒,性能提升8倍
一个基于Flask 2.0 + Requests库的聚合API,因串行调用3个上游HTTP服务而达到9.8秒的P95延迟。通过引入asyncio + aiohttp 3.8,将阻塞式IO替换为事件循环驱动的协程,在保持接口签名不变的前提下,将P95延迟降至1.2秒,吞吐量从120 QPS提升至960 QPS。本文记录了从同步到异步的完整改造过程,包括Semaphore限流、超时控制、连接池复用等生

主要工作是解决昨天留下的问题。主要研究软件工程与问题排查,记录代码实现与工程实践、项目复盘以及那些看似简单却很容易踩坑的问题。偶尔更新生活观察,主要还是认真做事。
一个基于Flask 2.0 + Requests库的聚合API,因串行调用3个上游HTTP服务而达到9.8秒的P95延迟。通过引入asyncio + aiohttp 3.8,将阻塞式IO替换为事件循环驱动的协程,在保持接口签名不变的前提下,将P95延迟降至1.2秒,吞吐量从120 QPS提升至960 QPS。本文记录了从同步到异步的完整改造过程,包括Semaphore限流、超时控制、连接池复用等生
在React 18和Vue 3项目中,当组件树超过5层、全局状态更新频率超过10次/分钟时,Context/Props方案的性能瓶颈开始显现。本文基于一个5000行代码的中型后台项目,实测从Context/Props迁移至Zustand(React)和Pinia(Vue)后的数据:首屏渲染时间减少32%,组件重渲染次数降低58%,代码量缩减40%。文章详细对比了两种方案的优劣,并给出完整的迁移步骤