【问题标题】:Tomcat clustering/loadbalancing performance in production environment生产环境中的Tomcat集群/负载均衡性能
【发布时间】:2011-07-26 18:20:48
【问题描述】:
我对负载均衡环境中集群和会话管理的性能有一些疑问。以下是我的问题:
- 粘性会话和会话复制的缺点是什么。集群将包含 4 个节点,但可能会出现许多并发用户会话。
- 两种解决方案的重载性能如何?
- 有人在生产环境中使用过它们吗?
- 可扩展性如何?
- 如果使用持久共享会话 - 在哪里存储状态以实现可能快速且稳定的解决方案?
- 您是否有过大规模会话共享(在外部内存缓存、数据库等)方面的经验?
感谢您的建议
【问题讨论】:
标签:
session
tomcat
load-balancing
cluster-computing
【解决方案1】:
正如已经在 SF 上回答的那样:
- 粘性会话的缺点是,随着节点数量的增加(在 > 100、> 1000 的范围内),失败的概率会增加。那么最好是哪个节点为请求提供服务并不重要。然而,有一些问题必须以不同的方式解决,这当然取决于要求和应用程序(例如会话同步、防止重复提交、发布后重定向等)。大多数情况下,只要节点数量有限,我自己的偏好是使用粘性会话。对于 4 个节点,我个人建议使用粘性会话。
- 我们在生产环境中通过memcached-session-manager 使用了粘性会话和会话复制。 memcached-session-manager 是在 tchibo.de(德国最大的电子商务网站之一)重新启动期间开发的,旨在兼顾性能和可扩展性。
- 我们为此应用程序选择了粘性会话
- 因为性能更好
- 客户需求选择了粘性会话
- 使用的网络框架更适合粘性会话。