Global Accelerator 中客户端亲和性的工作原理
如有与标准加速器配合使用的有状态应用程序,则可以将客户端亲和性配置为让 Global Accelerator 将来自特定来源(客户端)IP 地址的用户的所有请求引导至同一端点资源。选择此选项可保持用户的客户端亲和性。
默认情况下,标准侦听器的客户端亲和性设置为无,Global Accelerator 在侦听器的端点组中的端点之间平均分配流量。
Global Accelerator 使用一致流哈希算法为用户的连接选择最佳端点。如果将 Global Accelerator 资源的客户端亲和性配置为无,则 Global Acelerator 使用五元组属性(源 IP、源端口、目标 IP、目标端口和协议)来选择哈希值。接下来,它选择可提供最佳性能的端点。如果给定客户端使用不同的端口连接到 Global Acelerator,并且您指定了此设置,则 Global Acelerator 无法确保来自客户端的连接始终路由到同一端点。
如果您想通过在每次连接时将特定用户(由其源 IP 地址标识)路由到同一端点来保持客户端亲和性,请将客户端亲和性设置为源 IP。指定此选项后,Global Acelerator 会使用二元组属性(源 IP 和目标 IP)来选择哈希值,并在用户连接时将用户路由到同一端点。此外,Global Accelerator 还通过将具有同一源 IP 地址的所有连接路由到同一端点组来遵循客户端亲和性。
有时,由互联网流量路由的变化造成的网络维护或中断可能会导致客户端流量转移到不同的 Global Accelerator 边缘站点。发生这种情况时,如果现在为客户端流量提供服务的边缘站点首选其它 AWS 区域,则无法保证保持客户端亲和性。
此外,请注意,如果您在加速器中设置了端点权重,在特定的有限场景中,Global Accelerator 会覆盖这些权重,以帮助确保可用性。当 Global Accelerator 在端点组中的端点之间对流量进行负载均衡时,在某些情况下,必须在保持客户端流量的可用性和遵守端点权重之间做出选择。例如,对于保留客户端 IP 地址的加速器,Global Accelerator 可能需要覆盖端点权重设置以帮助避免连接冲突。