如果我们扩大规模(将实例添加到ELB),我们可以将一些现有的请求redirect到新的实例。 因此,我们强制到新服务器的用户将被要求重新login
如果我们缩小(从ELB中删除一个实例),那么来自该服务器的所有用户将自动被ELBredirect到其他剩余的服务器。 这些用户不应该再次login。
这是可能的(包括请求的redirect)? 怎么样?
任何想法是受欢迎的,但我认为这可以解决使用中央会议商店。 我只是不知道如何实现它。
而使用中央会话存储的选项有哪些? SimpleDB的? Redis的? memcached的?
更新:
我们的应用程序只是一个简单的Web应用程序托pipe在Apache中。 我们有两个实例添加到Amazon ELB,我们正在使用PHP。
任何ELB PHP的具体build议? 当缩小/放大发生没有用户可见的症状应该显示?
是的,您可以使用集中式会话存储来解决所有这些问题。 在不知道应用程序的情况下,不可能指出实现它的权威性指南(无论如何这将是一个堆栈溢出问题),但是通常就像设置一个选项(像Rails这样的框架)来编写几行代码由Web框架调用的胶水代码,连接到商店以存储细节或检索它们。
至于使用什么,我build议Redis。 虽然memcached似乎是做的伎俩,它有不愉快的缺点,要求用户重新login,无论何时需要重新启动您的memcached实例。 在冗余系统中遵循的一个很好的经验法则是,对基础设施的更改不应该显示任何用户可见的症状。 另一方面,Redis坚持不懈,在更新和检索方面都非常快,并且在我所使用的大规模情况下performance出令人难以置信的稳健性。