在AWS上有其他可替代粘性会话的方法吗?



我在一个经典负载平衡器上使用两个ec2实例。我的用户在分析过程中出现了502个错误,特别是在进行ajax调用时。换句话说,如果用户连接到服务器实例,则在使用程序过程中的ajax调用将定向到另一个服务器实例。这就导致了错误。我需要用户在他/她的会话期间针对相同的服务器实例。

在谷歌上面提到的问题后,我发现了这个:

负载均衡、AJAX和你

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html

根据这些文档,我应该在我的负载均衡器上应用粘性会话。但是,它要求客户端在浏览器上启用cookie。我真的不想那样。

这个问题还有其他解决办法吗?如有任何建议,我将非常感谢。

您面临的问题是因为您的应用程序是有状态的。在理想的负载平衡和自动伸缩设置中,所有实例都应该是无状态的,这意味着将用户重定向到其他实例不会有任何问题。

要做到这一点,所有与用户会话相关的状态信息应该在实例之外存储和处理,例如在DynamoDB或ElasticCache中。这将增加更多的成本,并需要更改您的应用程序,但这是您应该瞄准的,它将允许您在url中传递stateid,而不是cookie。

遗憾的是,我不认为你可以实现你想要的没有负载平衡cookie或应用程序级cookie。

相关内容

  • 没有找到相关文章

最新更新