Azure WebApp Flask应用扩展-并发请求



我正在测试Azure中的Flask API应用程序是否可以处理并发请求。我认为最明显的方法是在一个简单的测试项目中再添加几个实例,并测试快速调用端点是否会创建并发请求,但似乎每个请求都是一次处理一个。我的应用程序很简单:

from flask import Flask
import logging, sys
import time
app = Flask(__name__)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)
@app.route('/test', methods=['GET'])
def health_check(): 
logger.info('Test Start')
time.sleep(10)
logger.info('Test Complete')  
return 'Completed'

然后我部署到Azure WebApp,并将实例设置为2。我通过打开两个Edge选项卡并同时提出请求来进行测试。我希望我的日志看起来像:

10:00测试开始10:00测试开始10:10测试完成10:10测试完成

但Azure中的日志显示:

10:00测试开始10:10测试完成10:10测试开始10:20测试完成

我认为增加实例基本上会创建你的应用程序的副本,Azure会自动管理负载平衡,所以我本以为第二个请求会意识到第一个请求被阻止并转到第二个实例?

在您的应用程序服务ARR Affinity上,azure负载均衡器将只启用web应用程序的一个实例。当您禁用ARR Affinity时,azure负载均衡器将同时启用所有实例,并且您可以看到所有实例日志。查看此处

请参阅此处了解更多信息

最新更新