Azure AppService自动缩放采用何种算法?实例请求路由规则是什么
Azure App Service 自动缩放与内置路由规则说明
1. 自动缩放执行算法
Azure App Service的横向自动缩放采用阈值触发的步进式调整逻辑,具体规则如下:
- 系统会按配置的指标采样周期(默认1分钟,可自定义)持续采集指定的监控指标(当前配置为CPU使用率)
- 当连续N个采样周期(默认3个)的指标平均值满足触发条件(即CPU使用率>75%),且当前运行实例数小于设置的最大值4时,会触发扩容操作,每次扩容1个实例
- 扩容完成后会进入冷却周期(默认5分钟,可自定义),这段时间不会再执行任何缩放操作,避免指标抖动导致频繁缩放
- 缩容逻辑同理:如果未单独配置缩容规则,默认当CPU使用率持续低于25%时,会每次缩容1个实例,直到实例数降到设置的最小值3为止
2. 内置路由分发算法
未配置额外负载均衡时,App Service 前端采用的是基于ARR(Application Request Routing)的路由规则,不属于纯粹的Least Response Time、普通Round Robin算法,具体逻辑如下:
- 默认开启客户端亲缘性(会话粘滞):同一个客户端发起的首次请求会被分配到某一实例,后续请求只要携带对应的
ARR AffinityCookie,就会被固定路由到同一个实例,除非该实例出现健康异常 - 如果手动关闭了客户端亲缘性,默认采用动态加权轮询算法:权重会根据每个实例的实时健康状态、CPU/内存负载情况动态调整,优先把新请求分配给负载更低、健康状态更好的实例,避免高负载实例继续接收请求导致过载
- 所有异常实例会被自动从路由列表中摘除,不会分配新请求,直到实例恢复正常为止
内容的提问来源于stack exchange,提问作者Karthik
相关产品推荐
相关产品推荐

