Amazon ec2 Amazon Web服务上的会话粘性

Amazon ec2 Amazon Web服务上的会话粘性,amazon-ec2,amazon-web-services,amazon-elastic-beanstalk,amazon-elb,Amazon Ec2,Amazon Web Services,Amazon Elastic Beanstalk,Amazon Elb,我对Amazon Web服务上会话粘性的使用有点困惑。当我使用Amazon Elastic Beanstalk部署java web应用程序时,我可以选择启用会话粘性,然后指定cookie过期期限 我的应用程序将cookies用于会话(JSESSIONID)以及其他小事情。大多数网站只有在登录后才能访问(我使用SpringSecurity来管理它)。该网站将在多达25个小型EC2实例上运行 我应该启用会话粘性吗?如果我不启用它,是否意味着我可能会因为负载平衡器将我带到另一台服务器(而不是对我进行身

我对Amazon Web服务上会话粘性的使用有点困惑。当我使用Amazon Elastic Beanstalk部署java web应用程序时,我可以选择启用会话粘性,然后指定cookie过期期限

我的应用程序将cookies用于会话(JSESSIONID)以及其他小事情。大多数网站只有在登录后才能访问(我使用SpringSecurity来管理它)。该网站将在多达25个小型EC2实例上运行

我应该启用会话粘性吗?如果我不启用它,是否意味着我可能会因为负载平衡器将我带到另一台服务器(而不是对我进行身份验证的服务器)而突然注销?如果我启用了会话粘性,那么在对我进行身份验证的服务器关闭时我是否会注销?基本上,我为什么和什么时候应该使用会话粘性

多谢各位

如果我不启用它,是否意味着我可能会因为负载平衡器将我带到另一台服务器(而不是对我进行身份验证的服务器)而突然注销

如果我启用了会话粘性,那么在对我进行身份验证的服务器关闭时我是否会注销

在将Elastic Beanstalk与典型的JavaWebApp一起使用时,我认为您肯定希望启用会话粘性。否则,来自用户浏览器的每个HTTP请求都可以路由到不同的服务器

为了避免用户的会话在他们“被卡住”的服务器关闭时被破坏的问题,您需要进行调查。不幸的是,这不是Elastic Beanstalk现成的功能,因此为了设置会话复制,您必须创建一个自定义的Elastic Beanstalk AMI供您的应用程序使用。此外,您还必须使用Tomcat会话复制的实现,因为AWS或我所知的任何其他云环境都不提供多播。一个不依赖多播的实现示例是使用数据库(如Amazon RDS)或memcached服务器(如Amazon弹性缓存)使会话跨多个Tomcat实例可用


还请注意,Elastic Beanstalk UI仅允许您启用负载平衡器生成的HTTP cookie。但是,在Elastic Beanstalk创建负载平衡器之后,您可以进入EC2控制台,修改负载平衡器的设置,将其切换到应用程序生成的HTTP cookie,然后告诉它使用“JSESSIONID”cookie。

您也可以使用DynamoDB进行tomcat会话共享:

非常感谢您的详尽回复,@mbaird。我已经使用MySQL数据库在Tomcat中配置了会话复制。我遵循以下指南:。当只有一个EC2实例时,它可以正常工作。当有两个(或更多)时,它在登录时进入重定向循环。它302一次又一次地重定向到主页。每次重定向时,服务器都会使用不同的JSESSIONID设置一个cookie。你知道为什么会这样吗?非常感谢。将
memcached会话管理器
配置为使用Amazon ElastiCache解决了此问题。。谢谢AWS上的node js应用程序中可能存在会话粘性??