负载均衡器和会话管理

Pra*_*mar 9 session load-balancing

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

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

Kea*_*her 7

这就是"Sticky Sessions"或"Session Affinity"的概念发挥作用的地方.

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

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

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

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

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


小智 2

这种情况取决于技术,根据我使用 .Net 的经验,有两个概念称为 StateServer 或 SQLServer,它们是从服务器中的执行过程中获取会话信息的建议,所以这就是想法,将会话隔离在不同的环境中服务器或进程,您可以在这里阅读一些内容:

.Net 中的状态服务器模式

.Net 中的负载平衡

因此,另外阅读此文章以了解负载平衡和集群之间的区别,对于某些平台最好选择最佳选项。