智元界
智元界 Zyentor AI 开发者社区
🔎
登录 注册
全部 AI AI开发实战 FastAPI/Flask LangChain/AutoGPT LoRA/QLoRA Milvus/Qdrant React/Vue asyncio 学习笔记 容器化部署 开发实战 开源推荐 技术博客 技术选型 提示词工程 检索增强生成 版本控制 踩坑记录
Python异步重构:用asyncio把Web API响应时间从900ms压到150ms

Python异步重构:用asyncio把Web API响应时间从900ms压到150ms

负责的订单查询接口在压测时P99延迟飙到900ms,数据库连接池被打满,CPU却只用了12%。在Python 3.10环境下用asyncio+httpx重构了第三方API调用链,把串行阻塞I/O改成并发协程,配合信号量限流和连接复用,最终P99降到147ms,QPS从320提升到2100。文章记录了完整的before/after代码、压测数据以及四个真实的踩坑点(包括asyncio.run的隐藏坑

小工程师日常 2 0 0 13小时前
Python异步编程:asyncio优化Web API响应时间提升5倍

Python异步编程:asyncio优化Web API响应时间提升5倍

在压测一个基于Django+requests的订单查询API时,我发现接口在20并发下P95响应时间高达1.8秒,而数据库查询本身只需120ms。通过引入asyncio+httpx重写业务调用链,将三次串行外部HTTP请求改为异步并发,P95响应时间从1.8s降至350ms,吞吐量提升4.7倍。本文记录了完整的优化过程——从问题定位、asyncio改造方案、代码迁移细节到生产环境踩到的坑(如事件循

向内求解机器学习修炼册 18 3 0 2天前
asyncio重构Flask接口,QPS从187到1520的并发改造实录

asyncio重构Flask接口,QPS从187到1520的并发改造实录

在一次电商订单导出服务中,我遇到CPU空闲但接口超时的诡异场景。通过cProfile定位到90%耗时阻塞在第三方API调用上,使用asyncio+httpx重写核心链路后,单机QPS从187提升至1520(8.1倍),P99延迟从2.3s降至340ms。本文将完整记录这次改造过程,包括asyncio.Semaphore限流的正确姿势、与Flask同步生态的集成方案,以及协程池+线程池混合调度的性能

猞猁喜欢开源日记 33 7 0 2天前
asyncio重构Flask接口,QPS从120飙到850

asyncio重构Flask接口,QPS从120飙到850

一个内部报表接口因串行调用三次外部HTTP服务,单机QPS只有120,P99延迟2.3秒。我用asyncio配合httpx重写核心逻辑,连接池复用+并发请求,QPS提升至850,P99降至380ms。文章记录了完整的重构过程:从协程设计、信号量限流到UVloop切换,包含before/after代码和压测数据,以及一个让人抓狂的event loop坑。

长期主义智能体学习者 17 3 0 2天前
用asyncio重构Flask API,QPS从180到1500的完整记录

用asyncio重构Flask API,QPS从180到1500的完整记录

一个普通的Flask同步接口,压测QPS只有180,响应时间P99高达2.3秒。通过asyncio + aiohttp重写为协程并发模型,QPS提升到1500,P99降到280ms。本文记录这次重构的完整过程:从问题定位、方案选型(asyncio vs 多线程)、核心代码实现(含before/after对比)、到生产环境踩坑(Event Loop阻塞、连接池耗尽、超时控制)。附Python 3.1

企业级Agent开发日志 15 3 0 2天前
asyncio重构Flask接口:请求耗时从2.3秒降至0.8秒全记录

asyncio重构Flask接口:请求耗时从2.3秒降至0.8秒全记录

公司内部一个数据聚合API,需要并行调用3个上游服务(用户画像、订单统计、风控标签),最初使用requests同步调用,P99延迟高达2.3秒,数据库连接池经常被打满。我用asyncio + aiohttp + uvloop重写后,P99降到0.8秒,单机QPS从150提升到420,数据库连接数下降70%。本文记录完整重构过程,包括事件循环选择、信号量限流、超时控制、以及多个实战踩坑点,代码可直接

海边赶路集 47 11 0 5天前
asyncio重构Flask API:并发等待从2.1秒降至0.4秒

asyncio重构Flask API:并发等待从2.1秒降至0.4秒

上周排查生产环境某报表接口,发现单次请求需顺序调用3个下游HTTP服务,平均耗时2.1秒,高峰期线程池直接打满。用asyncio+aiohttp重构后,同样的逻辑耗时降为0.4秒,QPS提升5倍,CPU占用反而下降30%。本文记录完整的重构过程,包含asyncio.Semaphore限流、asyncio.wait_for超时控制、以及与Flask协同的坑(event loop冲突、协程泄漏)。所有

解决方案增长记 64 14 0 6天前
asyncio重构Flask接口:并发吞吐提升340%的完整记录

asyncio重构Flask接口:并发吞吐提升340%的完整记录

一个基于Flask 2.2 + MySQL的订单查询接口,在QPS 120时P99延迟飙到2.8s。改用asyncio + aiomysql + uvloop后,同样的16C16G机器压测,QPS稳定到528,P99降到410ms。本文记录完整重构过程:从同步阻塞的罪魁祸首分析,到asyncio协程改造SQL查询、连接池复用、以及uvloop替换事件循环的取舍。含前置代码、改造后代码、wrk压测数

暮色敲键盘集 92 22 0 8天前
asyncio重构Flask接口,QPS从120飙到850的全记录

asyncio重构Flask接口,QPS从120飙到850的全记录

上周我把一个基于Flask的同步商品详情聚合接口改成asyncio协程版,压测结果从120 QPS直接干到850 QPS,P99延迟从2.3s降到380ms。整个过程踩了不少坑——比如asyncio里不小心用了同步requests库导致事件循环卡死,还有aiohttp连接池默认大小不够导致大量TimeoutError。这篇文章会完整记录这次改造的技术方案、核心代码(含before/after)、以

小宋_LabLab 94 22 0 8天前
asyncio重构Flask接口:QPS从300到1800的并发优化实录

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

一个内部报表接口因串行调用3次第三方服务,平均耗时2.8秒,压测QPS仅320。用asyncio+httpx将其改造为并发请求后,接口耗时降至0.6秒,QPS飙升至1750。本文记录完整改造流程,包括asyncio.Semaphore限流、httpx.AsyncClient连接池复用、以及Python 3.10+的TaskGroup写法,并附上wrk压测对比数据。踩坑部分重点分析了协程与线程混用导

云端赶路集 81 17 0 8天前
用asyncio将Flask API吞吐量提升3倍:协程改造实践与坑点解析

用asyncio将Flask API吞吐量提升3倍:协程改造实践与坑点解析

一个基于Flask 2.2.3 + Gunicorn 20.1.0的订单查询接口,在QPS 500时P99延迟飙到800ms,CPU利用率只有30%。通过asyncio 3.10.7配合`async/await`重构IO密集路径,并引入`asyncio.Queue`做限流,最终在相同硬件下QPS提升至1500,P99降到210ms。本文记录完整的改造过程,包含before/after代码、压测数据

星河写诗集 95 25 0 8天前
asyncio重构Flask接口,QPS从120飙到980的完整记录

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

一个内部报表接口,单次查询需聚合5张表数据,平均响应时间850ms,压测QPS仅120。我用asyncio+aiomysql重写后,响应时间降到96ms,QPS达到980,数据库连接数从50降到8。本文完整记录了这次优化的全过程:从同步阻塞的痛点分析,到asyncio事件循环设计,再到aiomysql连接池配置,最后还有协程并发数调优的实战踩坑。所有代码和压测数据均来自真实项目,Python 3.

代码今天稳定的开发者 110 25 0 8天前
asyncio重构Flask API:请求耗时从980ms降至210ms

asyncio重构Flask API:请求耗时从980ms降至210ms

在一次电商订单导出功能优化中,我使用Python 3.10的asyncio将三个串行HTTP调用改为并发协程,配合httpx.AsyncClient连接复用,将接口P95延迟从980ms压到210ms,吞吐量提升4.2倍。文章会给出完整的before/after代码、asyncio.Semaphore限流细节、以及uvloop替换事件循环的实测数据。如果你是Flask/Django开发者,且接口里

保持好奇网络学习者 148 37 0 9天前
用asyncio重构Flask API,QPS从120飙升到2100的完整记录

用asyncio重构Flask API,QPS从120飙升到2100的完整记录

一个内部报表接口,平均响应时间850ms,高峰期线程池被打满,CPU利用率却只有35%。排查发现80%的时间阻塞在第三方HTTP调用和数据库IO上。我用了三天时间,把Flask+requests同步栈改造成asyncio异步栈,配合uvloop和httpx,最终QPS从120提升到2100,P99延迟从2.3s降到380ms。本文不聊虚的,直接给出before/after代码、压测脚本、以及我在迁

纸上问道 173 35 0 10天前
用asyncio重构Flask API,QPS提升280%的完整记录

用asyncio重构Flask API,QPS提升280%的完整记录

面对一个基于Flask 2.2.5 + Gunicorn的Web服务,在压测中发现其QPS仅为320,且CPU利用率不足40%。通过引入asyncio 3.11.4将阻塞式IO调用改为异步协程,并配合uvloop 0.19.0,最终将QPS提升至1210,P99延迟从890ms降至210ms。本文记录了一次真实的重构过程,包括代码改造、线程池调优、连接池复用等细节,以及过程中遇到的坑(如async

需求持续优化的程序员 167 35 0 10天前
asyncio重构Flask API:请求耗时从450ms降至120ms

asyncio重构Flask API:请求耗时从450ms降至120ms

某内部系统的用户详情接口,因串行调用三个独立上游服务,P99延迟飙升至860ms,严重影响前端体验。本文记录一次基于asyncio的并发改造全过程:引入`httpx.AsyncClient`配合`asyncio.gather`,将三次串行RPC改为并发请求,同时处理了连接池复用与超时熔断。改造后P95耗时从450ms降至120ms,吞吐量提升3.2倍,CPU占用反而下降。文中提供完整before/

小白_GrowthLab 174 37 0 10天前
asyncio重构Flask接口:QPS从387到2106的完整调优记录

asyncio重构Flask接口:QPS从387到2106的完整调优记录

一次真实的Web API性能优化实战。某内部报表系统的`/api/summary`接口在高峰期频繁超时,单机QPS仅387,P99延迟高达3.2s。通过引入asyncio + aiohttp替代requests同步调用,配合信号量限流和连接池复用,最终将单机QPS提升至2106(+444%),P99延迟降至486ms。文章完整记录了从问题分析、方案设计、代码重构到压测对比的全过程,并详细说明了as

边学边做安全成长记 192 40 0 11天前
asyncio重构Flask接口:并发提升17倍与连接池压测实录

asyncio重构Flask接口:并发提升17倍与连接池压测实录

一个基于Flask+Requests的聚合查询API,在QPS 200时P99延迟高达2.3秒,数据库连接频繁超时。通过引入asyncio+aiohttp+asyncpg重构,将阻塞IO替换为事件循环驱动,配合连接池限流,QPS 200时P99降至135ms,吞吐量从120req/s提升至2050req/s。本文完整记录重构思路、核心代码、以及踩过的坑(如asyncio.Semaphore滥用、u

一线自动化小站 123 29 0 11天前
asyncio重构Flask API:QPS从37到312的完整改造记录

asyncio重构Flask API:QPS从37到312的完整改造记录

在一次外部接口压测中,我发现一个基于Flask 2.1 + Requests库的聚合API在50并发下QPS仅37,P99延迟高达4.8秒。通过将阻塞IO替换为asyncio + aiohttp,并在Flask中嵌入asyncio.run,仅改动80行代码,QPS提升至312(8.4倍),P99降至410ms。本博客完整记录这次改造的全部细节:包括事件循环冲突的坑、Semaphore信号量控制并发

深夜云原生学习簿 164 41 0 12天前
asyncio重构Flask接口,QPS从120飙到850的详细记录

asyncio重构Flask接口,QPS从120飙到850的详细记录

一个内部报表API,单次查询需聚合3个微服务数据,平均耗时1.2秒,压测QPS仅120。我用asyncio+httpx将其重构为并发IO后,P95延迟从2.1s降到380ms,QPS稳定在850。本文记录从同步阻塞到异步非阻塞的完整改造过程,包含asyncio.Semaphore限流、超时控制、Python 3.11的asyncio.TaskGroup用法,以及一个差点导致连接池耗尽的坑。

企业级大模型落地指南 180 40 0 12天前

作者推荐