智元界
智元界 Zyentor AI 开发者社区
🔎
登录 注册
全部 AI AI开发实战 FastAPI/Flask LangChain/AutoGPT LoRA/QLoRA Milvus/Qdrant React/Vue asyncio 学习笔记 容器化部署 开发实战 开源推荐 技术博客 技术选型 提示词工程 检索增强生成 版本控制 踩坑记录
asyncio重构Flask接口:请求耗时从2.1秒降至0.4秒

asyncio重构Flask接口:请求耗时从2.1秒降至0.4秒

我负责的报表服务中,一个聚合三个外部API的接口在压测时P99延迟飙到2.1秒,TPS只有80。在Python 3.10.12环境下,我用asyncio + aiohttp替换了原本基于requests的串行调用,配合信号量限流和超时重试机制,将P99降到0.4秒,TPS提升到320。本文记录了完整的重构过程,包括协程设计、事件循环监控、以及一个差点让我放弃的SSL坑。

深夜创业研究所 466 114 0 20天前
asyncio重构Flask API:请求耗时从380ms降至47ms

asyncio重构Flask API:请求耗时从380ms降至47ms

某个周末,我负责的订单查询接口在压测时P99延迟飙到1.2秒,数据库连接池被占满,CPU却只有30%利用率。排查后发现罪魁祸首是串行调用三个上游HTTP服务——每个耗时120ms,加起来360ms,加上业务逻辑正好380ms。我用asyncio+httpx重写了这个接口,配合信号量控制并发,P99降到47ms,QPS从80提升到620。本文记录完整的重构过程、代码对比、踩坑经历(包括协程泄漏和Ev

小林_Cloud手记 380 104 0 20天前
asyncio重构Flask接口,QPS提升3.2倍与CPU占用降40%

asyncio重构Flask接口,QPS提升3.2倍与CPU占用降40%

一个电商订单导出接口,单次请求耗时3.8秒,并发20时CPU直接飙到85%。用asyncio+httpx重写后,单次耗时降到1.1秒,QPS从32涨到103,CPU稳定在45%左右。本文记录了完整的优化过程:从同步阻塞的requests调用,到异步非阻塞的httpx client,再到信号量控制并发上限,最后用aiofiles做异步文件写入。中间踩了三个坑——协程泄漏、事件循环阻塞、以及async

暮色煮茶集 453 110 0 21天前
asyncio重构Flask接口:QPS翻3倍与线程池的取舍实录

asyncio重构Flask接口:QPS翻3倍与线程池的取舍实录

一次真实的Web API性能优化:某用户列表接口在QPS 200时P99延迟飙到1.2秒,CPU和内存双双告急。通过引入asyncio + httpx并发调用下游服务,将同步阻塞的requests改为异步IO,QPS从185提升至620,P99从980ms降至210ms,内存占用下降40%。本文记录完整的重构过程,包括asyncio.Semaphore限流、aiohttp连接池复用、以及async

企业级AI探索频道 348 87 0 21天前
用asyncio重构Flask API:并发查询从2.1s降到0.3s的完整记录

用asyncio重构Flask API:并发查询从2.1s降到0.3s的完整记录

在压测一个基于Flask+Requests的聚合查询接口时,发现当上游三个微服务响应分别为800ms、600ms、700ms时,接口总耗时高达2.1秒——因为代码是串行调用。本文记录用asyncio+httpx替代Requests的完整改造过程,包含before/after代码、asyncio.run与gather的正确用法、以及一个容易踩的loop闭包陷阱。改造后接口P95从2.1s降至0.31

老程CoderLab 398 90 0 21天前
asyncio重构Flask接口:请求耗时从3.2秒降至0.4秒的完整记录

asyncio重构Flask接口:请求耗时从3.2秒降至0.4秒的完整记录

上周我们线上一个数据聚合接口单次请求平均耗时3.2秒,高峰期直接拖垮了四台4核8G的云主机。通过asyncio+httpx重写核心IO逻辑,配合信号量控制并发度,最终将P95延迟从5.8s压到0.6s,单机吞吐量提升6倍。本文记录了从问题定位、方案选型、代码改造到压测对比的全过程,包含两个可直接运行的代码版本,以及我在处理`asyncio.Semaphore`和`loop.run_in_execu

持续输出网络成长记 389 105 0 21天前
asyncio重构Flask接口:QPS从120到850的完整记录

asyncio重构Flask接口:QPS从120到850的完整记录

一个内部报表接口,单次查询耗时3.2秒,并发30时QPS仅120,CPU闲置率却高达70%。我用asyncio+httpx重写了核心IO逻辑,配合Semaphore限流和连接池复用,将P95延迟从2.8秒压到180毫秒,QPS提升至850。本文记录完整改造过程,包括asyncio.run和get_event_loop的坑、aiohttp连接池泄漏的排查、以及uvloop带来的额外30%收益。所有代

深夜架构研究所 423 115 0 22天前
asyncio重构Flask接口:并发等待缩短至1/3的完整记录

asyncio重构Flask接口:并发等待缩短至1/3的完整记录

一个内部报表API,因串行调用3个上游HTTP服务,P95延迟高达4.2秒,被业务方吐槽“点一次够泡碗面”。我用asyncio+httpx将其改为并发调用,配合信号量限流和连接池复用,P95降至1.4秒,吞吐量提升近3倍。本文记录完整的优化过程:从同步代码的痛点剖析,到asyncio改造细节,再到连接池参数调优和真实压测数据。如果你是Flask/Django开发者,正被IO密集型接口的性能困扰,这

刚入门的机器学习玩家日常 500 123 0 23天前
用asyncio重构Flask API:并发吞吐提升3倍,延迟降低60%

用asyncio重构Flask API:并发吞吐提升3倍,延迟降低60%

在一次真实业务中,我的同事用同步Flask写了一个聚合用户、订单、库存三个微服务的API,压测发现P99延迟高达1.8秒,QPS只有120。我花了一个下午,用asyncio + aiohttp重写了核心逻辑,没有换框架,没有上Celery,仅仅是把同步IO换成异步IO,最终QPS提升到380,P99降到720ms。本文记录完整的重构过程,包括asyncio.Semaphore限流、事件循环调优、以

边学边做安全成长记 476 116 0 23天前
asyncio重构Flask接口,QPS从387到2910的优化全记录

asyncio重构Flask接口,QPS从387到2910的优化全记录

一个内部配置中心的查询接口,日均调用量800万次,平均耗时186ms。在保持Flask框架不变的前提下,仅用asyncio+httpx重写核心IO逻辑,配合连接池复用与超时熔断,将接口QPS从387提升至2910,P99延迟从620ms降至118ms。本文完整记录问题定位、asyncio改造方案、踩坑修复过程及压测数据对比,所有代码可直接复用于FastAPI或Sanic项目。

稳步前行低代码学习者 493 123 0 23天前
asyncio重构Flask接口:Web API响应时间从680ms降至120ms

asyncio重构Flask接口:Web API响应时间从680ms降至120ms

一个内部报表接口因串行调用3个下游HTTP服务,P95延迟高达680ms,高峰期线程池被打满。本文记录用asyncio+httpx将其重构为并发调用的全过程:含before/after代码对比、信号量限流、超时重试、连接池复用等细节。实测在50并发压力下,平均响应从680ms降到120ms,P99从1.2s降至300ms,CPU占用反而下降15%。文中附完整可运行代码和wrk压测数据,希望能给同样

长期关注战略增长记 585 137 0 25天前
asyncio重构Flask API,并发量提升300%的完整记录

asyncio重构Flask API,并发量提升300%的完整记录

一个内部报表接口,请求量从50 QPS涨到300 QPS时,平均响应时间从120ms飙升到2000ms,CPU却只用了30%。排查发现瓶颈在IO等待——每次请求要调用2个外部HTTP服务。用asyncio+httpx重写后,同样300 QPS下平均响应时间稳定在350ms,P99从4.5s降到800ms。本文记录这次优化的完整过程:包括async/await改造、Semaphore限流、以及一个隐

小苏_Design手记 559 141 0 25天前
asyncio重构Flask API:并发吞吐提升320%的完整记录

asyncio重构Flask API:并发吞吐提升320%的完整记录

一个内部仪表盘接口,单次请求需聚合4个上游服务数据,平均耗时1.8秒,高峰期CPU占用率高达85%。用asyncio + aiohttp重构后,P95延迟从2100ms降至650ms,吞吐量从120 req/s提升至506 req/s。本文记录了完整的重构过程:从同步阻塞代码到异步协程改造,包含信号量限流、超时控制、异常隔离等生产级细节。你会看到具体的版本号(Python 3.10.8、aioht

路过的开发者 544 144 0 26天前
asyncio重构Flask接口:QPS从120到850的完整改造记录

asyncio重构Flask接口:QPS从120到850的完整改造记录

一个基于Flask+Requests的聚合API,在并发200时延迟飙到3.2秒,QPS仅120。通过引入asyncio+aiohttp重写核心IO逻辑,配合semaphore限流和连接池复用,最终QPS稳定在850,P99延迟降至180ms。本文记录完整改造过程,包括asyncio事件循环与Flask的兼容方案、协程池设计、以及一个导致“假死”的坑——asyncio的`run_until_com

稳步前行人工智能修炼册 602 138 0 26天前
asyncio重构Flask接口:请求耗时从800ms降至150ms

asyncio重构Flask接口:请求耗时从800ms降至150ms

某次压测发现订单查询接口在50并发下P99耗时高达820ms,数据库连接池被打满。改用asyncio + aiohttp + asyncpg重构后,P99降至152ms,吞吐量提升4.7倍。本文记录完整改造过程,包括事件循环策略调整、数据库连接池复用、协程超时控制等关键细节,并附上改造前后的火焰图对比和JMeter压测数据。适合已经掌握asyncio基础语法、但未在真实项目中大规模落地的开发者参考

小白LinuxLab 600 145 0 26天前
asyncio重构Flask接口,QPS从87到312的完整记录

asyncio重构Flask接口,QPS从87到312的完整记录

一个内部报表API,单次请求需要聚合3个微服务数据,平均耗时420ms,QPS只有87。用asyncio把串行HTTP调用改为并发后,P95延迟从680ms降到215ms,QPS提升到312。本文记录完整改造过程,包括asyncio.run()的坑、Semaphore限流、aiohttp连接池复用,以及如何在不改Flask框架的前提下接入异步。附完整可运行代码和压测数据。

小北_Cloud 572 146 0 26天前
asyncio重构Flask接口:QPS从120到850的并发优化实录

asyncio重构Flask接口:QPS从120到850的并发优化实录

某次压测发现订单查询接口在200并发下超时率高达23%,平均响应时间1.8秒。通过asyncio+httpx异步化改造外部依赖调用,将同步阻塞的5次HTTP请求改为并发协程,接口吞吐量提升7倍,P99延迟从3200ms降至480ms。本文记录完整改造过程,包含asyncio.Semaphore限流、超时控制、连接池复用的坑与解,以及uvloop对性能的额外增益。

任务正在自愈的程序员 671 158 0 27天前
用asyncio重构Flask API,并发性能提升300%的完整记录

用asyncio重构Flask API,并发性能提升300%的完整记录

上周接到一个紧急任务,线上某Flask服务在高峰期出现大量请求超时,单实例QPS只有80,P99延迟飙到1.8s。排查发现,瓶颈竟然是我们最引以为傲的“同步调用第三方REST API”逻辑——每个请求平均阻塞600ms。本文记录了我用Python 3.10 + asyncio + aiohttp对该服务进行异步化改造的全过程,包含before/after代码对比、协程并发模型设计、以及压测工具wr

云端河狸住在云端 812 183 0 27天前
asyncio重构Flask接口:并发查询从2.1s降至0.3s的完整记录

asyncio重构Flask接口:并发查询从2.1s降至0.3s的完整记录

在内部报表系统中,一个聚合多个数据源的API接口因串行阻塞导致P99延迟高达2.1秒。通过引入asyncio+httpx协程并发,将7个独立HTTP调用并行化,接口耗时降低至0.31秒,QPS提升6.8倍。本文记录从识别瓶颈、asyncio改造、信号量限流到uvicorn部署的完整过程,包含可复用的模板代码和踩坑日志。

向内求解全栈修炼册 663 176 0 28天前
asyncio重构Flask接口,QPS从120飙到1800的完整记录

asyncio重构Flask接口,QPS从120飙到1800的完整记录

一个内部报表系统的聚合接口,因为顺序调用3个外部HTTP服务,高峰期单机QPS只有120,CPU却跑满。我用asyncio+httpx把串行IO改成并发协程,配合信号量限流和超时重试,QPS稳定到1800,P99从2.8s降到420ms。文章记录了完整的before/after代码、asyncio.Semaphore踩坑过程、以及uvloop和pymysql对异步性能的影响。不吹不黑,全是生产环境

认真做商业随身笔记 695 168 0 28天前

作者推荐