Google Cloud外部应用负载均衡权重流量拆分的用户亲和性问询
Google Cloud 外部应用负载均衡器流量拆分与亲和性问题解答
1. 默认及可配置场景下的流量亲和性工作机制
- 默认状态:外部应用负载均衡器无内置流量亲和性,同一用户的请求可能被分发至不同后端服务(版本),完全遵循权重拆分规则。
- 可配置场景:
- Cookie亲和性:配置会话亲和性规则后,负载均衡器可基于指定Cookie(自动生成的不透明Cookie或自定义Cookie),将同一用户的所有请求路由至同一后端版本。
- IP哈希亲和性:通过对客户端IP地址哈希,将同一IP(或共享同一出口IP的用户组)的请求固定到特定后端版本,但该方式在用户IP变化或共享NAT场景下可能失效。
2. 流量拆分是否为加权随机方式
是的,外部应用负载均衡器的流量拆分默认采用加权随机算法。每个请求会按配置的权重概率分配至对应后端——例如80%/20%的权重设置下,单请求有80%概率进入版本A、20%进入版本B。这种算法能让整体流量趋近于配置权重,但未启用亲和性时,单个用户的请求可能跨版本分发。
3. 能否通过不透明Cookie实现用户刷新页面时始终看到同一版本
可以。配置负载均衡器的会话亲和性规则,选择使用负载均衡器自动生成的不透明Cookie(如GCLB前缀的Cookie)即可。用户首次请求被分配至某版本后,负载均衡器会在响应中植入该Cookie;后续请求(包括页面刷新)携带此Cookie时,会被路由至同一版本。Cookie的有效期支持自定义配置。
4. Cookie禁用时,是否有其他策略维持用户亲和性
有,可启用IP哈希亲和性。负载均衡器会对客户端IP地址做哈希计算,将结果映射到特定后端版本。但需注意:
- 共享同一公网IP的用户(如企业NAT、移动网络用户)会被分配至同一版本;
- 用户IP地址变化(如移动设备切换网络)时,亲和性会丢失。
关于proto注释的适用性确认
你找到的proto注释同样适用于外部应用负载均衡器。Google Cloud的内、外部负载均衡器在URL Map的会话亲和性配置逻辑上保持一致,注释中提到的affinity_cookie_ttl_sec、session_affinity等字段,均可用于外部负载均衡器的流量拆分场景配置。
内容的提问来源于stack exchange,提问作者Raymond Carino
相关产品推荐
相关产品推荐

