IIS 10 ARR3.0启用客户端亲和后流量全路由至单节点问题咨询
问题根因
流量全部转发至单台应用服务器的核心原因是开启Client Affinity(客户端亲缘性)时错误勾选了use hostname配置项。
ARR客户端亲缘性的实现逻辑是对指定请求特征做一致性哈希计算,将相同特征值的请求固定路由到同一台后端节点。勾选use hostname后,哈希计算的唯一输入为请求的Host头,你的所有应用都通过同一个统一域名访问,所有请求的Host头完全一致,哈希计算结果固定指向同一台后端服务器,和客户端所属网络、设备类型没有任何关联。
你观察到的「手动下线当前承载流量的服务器后,流量会无缝切换到下一台节点」现象也完全匹配该逻辑:原哈希值绑定的后端节点不可达时,ARR会为这个固定的Host头哈希值重新分配下一台可用节点,后续所有请求又会固定打到这台新的节点上,不会再分散到其他节点。
初始静态页面测试阶段轮询策略均匀分发,是因为当时尚未启用亲缘性配置,ARR按默认轮询规则转发流量,和你描述的时间线完全吻合。
修复方案
根据你的业务场景选择对应配置调整即可:
- 若需要保留会话保持能力(避免客户端重复登录,保障会话连接一致性):直接取消
use hostname选项的勾选。ARR默认会以客户端IP + 亲缘性Cookie作为哈希计算依据,不同客户端的请求会被均匀哈希到3台后端节点,同时单个客户端的请求会固定路由到首次命中的节点,满足会话一致性要求。 - 若后续全量迁移的140个应用均为无状态应用(会话存储在共享缓存/数据库中,不依赖后端节点本地会话):可以直接关闭Client Affinity功能,回到纯轮询分发模式,流量会严格按33%左右的比例均匀分配到3个节点,资源利用率最高。
- 调整配置后额外校验:确认Server Farm的负载均衡策略为
Weighted Round Robin(加权轮询),且WEB-01、WEB-02、WEB-03三台节点的权重配置完全一致,避免权重配置不均导致的流量倾斜。
验证方法
- 配置生效后打开IIS ARR监控面板观察流量分布,正常5分钟内即可看到3台节点的请求数逐步趋近1:1:1的均匀分布状态。
- 使用不同公网出口的测试设备访问应用,确认不同设备的请求被分发到不同节点;单设备多次刷新请求,确认固定落到同一台后端节点(保留亲缘性配置的场景下)。
- 手动将其中一台后端节点置为下线状态,确认流量自动均匀切分至剩余两台可用节点,不会出现全量流量打到单节点的问题。
内容的提问来源于stack exchange,提问作者JonP
相关产品推荐
相关产品推荐

