【发布时间】:2015-02-10 23:31:25
【问题描述】:
我正面临一个有趣的问题。我们运行基于状态的基于 HTTPS 的应用程序。状态基于会话 cookie 进行维护。该应用程序的设计方式是,如果会话突然终止,应用程序将恢复到主屏幕,任何未保存的数据都会丢失。所以保持会话对我们来说非常重要。
在过去的某个时间点,它决定使用 AWS 服务来实现此目的,而当前架构具有一个 ELB,可将负载平衡到自动扩展组。使用的第一个架构启用了基于 HTTP 的粘性会话。在测试过程中发现,当缩小现有会话时,会立即关闭并重新路由到可用实例。即使在启用排水(超过 5 分钟)之后也会发生这种情况,根据文档应该可以防止这种情况发生。有人可以告诉我我们做错了什么吗?这是应该的工作方式吗?
我的第二个问题是,我们发现当使用 ELB 用于基于 tcp 连接的负载平衡时,情况并非如此。在这种情况下,当我们缩减旧的 tcp 连接时,会一直保持到它关闭或超时,并且新连接会被路由到其他实例。这是我们正在使用的当前设置。所以我的问题是为什么 ELB 在这两种情况下的行为不同,有没有办法让 ELB 使用 HTTP 粘性会话并基于 tcp 连接进行消耗?
如果您确实有答案,请与配置详细信息分享。谢谢。
【问题讨论】:
标签: session amazon-web-services tcp sticky amazon-elb