我在这里尝试了一些问题,试图找到使用会话变量的替代方法。我有几点要做,所以我将我的帖子作为一个新问题发布。
我的Web应用程序是使用spring构建的。我使用普通的SQL和hibernate来做一堆数据库读/写操作。它运行在两个Tomcat容器上。我的要求是找到一个合适且可扩展的替代方法来使用会话变量。目前,我正在使用session来存储大量的事务。有两种类型的事务,已完成并排队,我有两个会话对象来存储它们。有数千个事务,每个事务有大约10个与之关联的变量。
- 首先,我想在会话中存储所有交易。原因是我想避免数据库查询,直到某些内容发生变化,即任何事务已更新。我有适当的逻辑来在发生任何更新时重新加载会话对象。
- Web应用程序的用户不多,所以我不需要优化内存大小来存储所有会话对象,但是设计可以容纳数十万个会话对象肯定会很好。交易。
- 我有一个负载均衡器,我的Web应用程序在两个Tomcat应用程序上运行,我遇到了不同服务器上加载的事务不匹配的问题。例如,我根据日期对交易进行排序 - 当我浏览不同的交易时,他们不会按日期排序。我假设其中一个服务器有一个排序列表,另一个有一个未排序列表。我还没有探索会话复制的选项,我真的不想使用粘性会话。
- 使用cookies - 因为大量的交易和每个细节都太麻烦了。
- 使用隐藏变量或作为请求属性 - 不好,因为我必须将每个链接转换为表单提交。
- 自定义缓存 - 尚未探索,现在没有大型基础架构来实现它。
醇>
我还有其他选择吗?