生产环境中的Tomcat集群/负载平衡性能

在负载平衡环境下,对集群会话pipe理的性能有一些疑问。 这是我的问题:

  • 粘滞会话和会话复制有什么缺点? 群集将包含4个节点,但可能会有许多并发的用户会话。
  • 这两种解决scheme的重负荷性能是什么?
  • 有没有人在生产环境中使用它们中的任何一个?
  • 可扩展性如何?
  • 如果使用持久共享会话 – 在哪里存储状态以实现可能的快速和稳定的解决scheme?
  • 你有大规模的会话共享(在外部memcache,数据库等)的经验吗?

感谢您的任何build议

  • 粘滞会话的缺点是随着节点数量的增加(范围> 100,> 1000),故障的概率增加。 那么最好是哪个节点服务于请求并不重要。 然而,粘滞会话需要用不同的方式来解决,这当然取决于需求和应用(例如会话同步,防止双重提交,事后redirect等)。 只要节点数量有限,我自己的优先select就是使用粘性会话。 对于4个节点,我build议使用粘性会话。
  • 我们在生产环境中通过memcached-session-manager使用粘滞会话和会话复制。 memcached-session-manager是在tchibo.de(germance中最大的电子商务网站之一)的重新启动期间开发的,其目标是性能和可伸缩性。
  • 我们为这个应用程序select了粘性会话
    • 由于更好的performance
    • 客户要求select了粘滞会话
    • 使用的web框架更适合于粘性会话。

它不是这个或那个,如果应用程序需要两个,那么你必须使用两个。 如果在节点上发生故障,则使用会话亲缘关系来保护用户的数据。

引用这个例子,如果你正在工作一个节点,没有粘滞的会话,你的节点崩溃,集群将确保你看到的页面,但你当前的工作会话将丢失。