如果我使用具有应用程序控制的会话粘性的HTTP负载均衡器(在这种情况下为Amazon的AWS),负载平衡器显然必须记住映射中的所有会话Cookie及其目标实例。 因此,这张全球地图将会/必须保留“session-cookie与实例”的关系。会话如何与Amazon AWS的负载均衡器知道会话Cookie已过期?
如果Web应用程序用户决定关闭浏览器,则会话超时后,会话将在应用程序服务器上静静地死去。
这意味着负载均衡器在他的全局映射中仍然具有“会话 - cookie到实例”关系。由于此映射现在无用,会话cookie没有过期日期,因此它不得不进行垃圾回收(以释放资源)。
我的问题是:
如何负载平衡器一般处理这种情况下不耗尽资源?
如何在特定情况下优先处理Amazon AWS负载平衡器,而不会耗尽资源?
LB也可以做其他的事情,例如在HTML页面中重写URL到客户端,如果客户端不支持cookies,这将很有用。 – jarmod 2013-03-15 11:18:51
谢谢。是的,它看起来像是#1。 AWS设置一个名为AWSELB的cookie。这个cookie非常大,显然是HEX编码的。我尝试了一个简单的解码,但它没有任何用处。我想它也会以某种方式压缩,以尽可能减小尺寸。 – chi 2013-05-22 09:18:16
谢谢,我认为这是正确的,但是当我为AWS LB选择“使用应用程序生成的cookie”(例如JSESSIONID)时,AWS LB实际上不会设置AWSELB cookie。但JSESSIONID由LB设置,它看起来与App Server创建的cookie完全相同。因此它不能包含LB的有用实例路由信息,除非LB记得这一点。因此,LB必须将JSESSIONID信息**与实例信息**一起存储/如何能够将未来的请求与他相同的JSESSIONID路由到正确的后端实例。对? – chi 2017-03-02 07:38:02