亚马逊AWS的会话仿射负载均衡器如何知道会话cookie已过期?

时间:2013-02-24 13:28:27

标签: java amazon-ec2 session-cookies load-balancing

如果我使用具有应用程序控制的会话粘性的HTTP负载均衡器(在这种情况下是亚马逊的AWS),负载均衡器显然必须记住映射中的所有会话cookie及其目标实例。 因此,该全局映射将/必须保持“session-cookie to instance”关系。

如果网络应用用户决定关闭浏览器,会话超时后会话将在应用服务器上静默消失。

这反过来意味着负载均衡器在其全局映射中仍然具有“session-cookie to instance”关系。由于此映射现在无用且会话cookie没有到期日期,因此不能进行垃圾收集(以释放资源)。

我的问题是:

  1. 负载均衡器如何处理这种情况而不会耗尽资源?

  2. 如何使用此方案特别处理Amazon AWS负载均衡器而不会耗尽资源?

1 个答案:

答案 0 :(得分:5)

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

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

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

  3. 关键是LB不会将会话维持到目标地图。该信息驻留在每个客户端的cookie中。

    我相信AWS确实排名第一(使用名为AWSELB的cookie)。