负载均衡器和会话管理

如果有一个由2台服务​​器运行的网站.这两台服务器使用Load Balancer平衡负载.那么,如果在1台服务器上创建了1个会话并且说负载立即转移到另一个服务器,那么会话是如何维护的?

我只是在非常高的抽象层次上对这个概念感兴趣而不是真正的实现细节.

最佳答案
这就是“Sticky Sessions”或“Session Affinity”的概念发挥作用的地方.

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_StickySessions.html

您可以配置许多负载平衡器以将用户会话路由到同一台计算机.

另一种方法是在负载均衡器后面的两台机器都可以访问的数据存储中维护会话信息.如果会话存在于您的数据库中(甚至是redis / memcached),那么它只是一个主键查询(或获取),而不是在两台机器上保持一致.

自我推销:我实际上开始了一个项目来实现类似Buzzfeed的会话. http://github.com/buzzfeed/phonon

编辑:更新个人项目的链接.

转载注明原文:负载均衡器和会话管理 - 代码日志