Tomcat上的会话复制有什么缺点?

时间:2010-06-14 19:33:26

标签: session tomcat replication

我试图决定在Tomcat + Apache反向代理模式下用于会话复制的更好的方法。部署中更常见的是什么?会话复制还是会话?会话复制有什么缺点吗?

由于

2 个答案:

答案 0 :(得分:13)

如果您进行会话复制,我可以指出以下注意事项。

<强>性能

主要缺点是性能。复制会话涉及将会话数据复制到群集中的所有服务器。您在群集中拥有的服务器越多,所涉及的额外开销就越多。

Tomcat通过为会话复制定义两种模式来帮助解决这一问题。

DeltaManager(默认)和BackupManager

从此网址http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

  

使用上面的配置会   启用所有会话复制   使用DeltaManager进行复制   会话增量。我们的意思是所有人   会话被复制到   集群中的所有其他节点。   这适用于较小的群集   但我们不建议更大   集群(很多tomcat节点)。也   当使用delta管理器时它会   复制到所有节点,甚至是节点   没有应用程序   部署。

     

要解决这个问题,   你会想要使用BackupManager。   这位经理只复制了   会话数据到一个备份节点,和   只有拥有的节点   应用程序部署下行的   BackupManager:不太像战斗   作为增量管理器测试

如果启用会话复制,请阅读this URL以获取群集的良好设计提示。

<强>内存

将有多少并发用户访问该应用程序?用户越多,存储到会话中的数据就越多,因此会话复制过载。

代码注意事项

此外,您需要确保应用程序放入会话的数据是可序列化的。序列化会话数据有一些开销用于复制会话状态。保持会话大小相当小是个好主意,因此开发人员需要检查放入会话的数据量。

粘性会话

考虑到这些因素,它实际上取决于用例的重要性。如果您单独进行粘性会话,那么在关键旅程中可能会丢失用户数据。

您是否有办法从中恢复 - 例如:通过在订单或付款过程的每一步将关键数据持久存储到数据库中?如果不是,则用户必须登录并重新开始。这适用于非交易性网站,但浏览宣传册类型的数据或填写表格以捕获非付款等数据。

答案 1 :(得分:0)

我更喜欢使用memcache进行Sticky会话。