4

如果我使用具有应用程序控制的会话粘性的 HTTP 负载均衡器(在本例中为 Amazon 的 AWS),负载均衡器显然必须在映射中记住所有会话 cookie 及其目标实例。因此,此全局映射将/必须保持“会话 cookie 到实例”的关系。

如果 Web 应用用户决定关闭浏览器,会话超时后会话将在应用服务器上静默终止。

这反过来意味着负载均衡器在其全局映射中仍然具有“会话cookie 到实例”的关系。由于此映射现在无用并且会话 cookie 没有到期日期,因此它不能但应该被垃圾收集(以释放资源)。

我的问题是:

  1. 一般来说,负载均衡器如何在不耗尽资源的情况下处理这种情况?

  2. 特别是如何在不耗尽资源的情况下在这种情况下处理 Amazon AWS 负载均衡器?

4

1 回答 1

6

通常,应用程序感知(第 7 层)LB不会维护(大)会话映射。它可能:

  1. 将自己的 cookie 注入到客户端的第一个响应中(客户端将在后续请求中重新发送该 cookie,因此 LB 可以确定目标 Web 服务器)

  2. 重写众所周知的会话 cookie(例如 JSESSIONID),例如,向其附加标识目标 Web 服务器的信息(LB 会在随后的请求中呈现给 Web 服务器之前将其删除)

关键是LB不维护会话到目标映射。该信息位于每个客户端的 cookie 中。

我相信 AWS 会做到 #1(使用名为 AWSELB 的 cookie)。

于 2013-03-15T01:11:57.193 回答