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

Thi*_*ira 10 replication session tomcat

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

谢谢

Jos*_*seK 14

如果你去进行会话复制,我可以指出以下注意事项.

性能

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

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

DeltaManager(默认)和BackupManager

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

使用上述配置将使用DeltaManager实现全对会话复制,以复制会话增量.通过all-to-all,我们意味着会话被复制到集群中的所有其他节点.这适用于较小的集群,但我们不建议将其用于较大的集群(很多tomcat节点).此外,当使用增量管理器时,它将复制到所有节点,甚至是未部署应用程序的节点.

要解决此问题,您将需要使用BackupManager.此管理器仅将会话数据复制到一个备份节点,并且仅复制到已部署应用程序的节点.BackupManager的缺点:不像delta管理器那样经过测试

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

记忆

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

代码考虑因素

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

粘性会话

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

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