如果我使用具有应用程序控制的会话粘性的HTTP负载均衡器(在这种情况下是亚马逊的AWS),负载均衡器显然必须记住映射中的所有会话cookie及其目标实例。 因此,该全局映射将/必须保持“session-cookie to instance”关系。
如果网络应用用户决定关闭浏览器,会话超时后会话将在应用服务器上静默消失。
这反过来意味着负载均衡器在其全局映射中仍然具有“session-cookie to instance”关系。由于此映射现在无用且会话cookie没有到期日期,因此不能进行垃圾收集(以释放资源)。
我的问题是:
负载均衡器如何处理这种情况而不会耗尽资源?
如何使用此方案特别处理Amazon AWS负载均衡器而不会耗尽资源?
答案 0 :(得分:5)
通常,应用程序感知(第7层)LB 不维护(大)会话映射。它可能会:
将自己的cookie注入到客户端的第一个响应中(和 客户端会在后续请求中重新发送该消息,因此LB可以确定 目标网络服务器)
重写一个众所周知的会话cookie(例如 例如,JSESSIONID)向其附加信息 标识目标Web服务器(以及LB在随后的请求中呈现给Web服务器之前将删除的内容)
关键是LB不会将会话维持到目标地图。该信息驻留在每个客户端的cookie中。
我相信AWS确实排名第一(使用名为AWSELB的cookie)。