最近的AWSALB cookie是否必需?(AWS ELB应用程序负载均衡器)

36

观察结果

当使用 Amazon ELB 应用程序负载均衡器并且使用 Sticky Sessions 时,负载均衡器会在第一个请求中插入名为 AWSALB 的 cookie。要让下一个请求粘附到同一目标节点(EC2 实例),应该在该请求中包含此 cookie。当这样做时,似乎负载均衡器会在第二个请求的响应中插入不同的 cookie 值。在包含此新 cookie 值的第三个请求中,我们将在响应中获得新的 cookie 值。以此类推……

(这与使用经典负载平衡器的 Sticky Sessions 的方式不同,其中 cookie 的名称为 AWSELB,并保留其值直至客户端或负载平衡器放弃它。)

AWSALB cookie 值始终更改的原因似乎是(正如文档所述):

cookie 的名称为 AWSALB。这些 cookie 的内容使用旋转密钥进行加密。您不能解密或修改负载平衡器生成的 cookie。

因此,即使 cookie 的内容可能相同,我们也无法知道。

问题

问题是向负载均衡器发送请求时,是否必须始终包含最新接收到的 AWSALB cookie 值,或者发送一些之前接收到的值(来自相同的 sticky session)是否可以。

如果这是一个要求,AWS ELB应用负载均衡器将无法为执行多个并行请求(在接收第一个 AWSALB cookie后)的客户端提供服务,但只能为按顺序(一个接一个地)执行所有请求的客户端提供服务。
有人可以给予解释吗?
2个回答

44

在此等待回复后,我向亚马逊提出了一个支持案例,并得到了以下回复:

我了解您想确认每个请求是否需要提供最新的粘性 Cookie。

您指出 CLB 和 ALB 的行为不同是正确的。由于应用程序负载均衡器的功能不同,可以将流量定向到多个目标组,每个目标组都有自己的粘性,因此 ALB 加密了处理流量所需的信息并在每个请求上提供新的 cookie。这可以确保始终正确地尊重不同组的不同时间。

客户端始终可以获取最新的 cookie,因为内部信息会确保正确路由到相同的目标。如果您想要重复使用单个 cookie,也是可以的。ALB 会尊重它并根据 cookie 中的粘性正确路由流量。但我不建议在超过 60 秒的时间内重复使用同一 cookie。这是为了确保在目标不可用时,您可以获得带有新粘性信息的新 cookie,该信息会将您路由到新目标。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接