You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure WebApp部署Flask应用Scale Out后并发请求串行处理问题咨询

Azure WebApp部署Flask多实例仍串行处理请求的原因及解决方案

1. 浏览器同域名请求的队头阻塞

你用两个Edge标签页同时发起请求的测试方式本身存在限制:Chromium内核的浏览器(包括Edge、Chrome)默认会对同域名的相同GET请求做串行排队限制,第一个请求未返回时不会发起第二个,请求根本没同时到达Azure服务端,自然日志呈现串行结果。

验证方法:同时打开两个命令行终端,同时执行curl 你的WebApp域名/test,观察日志输出即可排除该问题。

2. Azure App Service默认开启ARR会话粘性

Azure WebApp默认开启了ARR Affinity(会话粘性),该配置会把同一客户端IP的所有请求都调度到同一个实例上,你的两个请求都被转发到了同一个实例,没有用到第二个实例资源。

解决方法:进入Azure Portal对应WebApp的「配置」-「常规设置」页面,关闭「ARR 关联性」开关即可。

3. 使用了Flask默认的单线程开发服务器

Flask自带的app.run()启动的开发服务器是单线程单进程模式,单实例同一时间只能处理1个请求,哪怕请求被调度到同一个实例,也会串行执行。该服务器仅用于本地开发,不能用于生产部署。

解决方法:部署时使用生产级WSGI服务器替代Flask自带服务器,比如Gunicorn:
启动命令参考:gunicorn --workers=2 --threads=4 app:app
该配置会启动2个进程、每个进程4个线程,单实例即可处理并发请求,配合多实例负载均衡效果更好。


内容的提问来源于stack exchange,提问作者percentum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:57:02