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

chi*_*chi 4 java load-balancing amazon-ec2 session-cookies

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

如果Web应用程序用户决定关闭浏览器,会话超时后会话将在应用服务器上静默消失.

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

我的问题是:

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

  2. 如何在没有资源耗尽的情况下特别针对此方案处理Amazon AWS负载均衡器?

jar*_*mod 6

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

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

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

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

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