java - 有没有办法用 Tomcat 指定不同的 session 存储?

标签 java tomcat session

Tomcat(此处为版本 5)将 session 信息存储在内存中。集群时,此信息会定期广播到集群中的其他服务器以保持同步。您可以使用数据库存储来使 session 持久化,但此信息也只是定期写入,并且仅真正用于故障恢复,而不是实际替换内存中的 session 。

如果您不想使用粘性 session (不幸的是我们的配置不允许这样做),这会引发 session 不同步的问题。

在其他语言中,网络框架往往允许您使用数据库作为主要 session 存储。虽然这引入了潜在的缩放问题,但它确实使 session 管理非常简单。我想知道是否有办法让 tomcat 以这种方式使用数据库进行 session (从技术上讲,这也不需要在 tomcat server.xml 中进行任何集群配置)。

最佳答案

绝对有办法。虽然我强烈支持粘性 session - 为您的服务器/数据库节省了很多负载(除非出现故障)...

http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html有关于 Tomcat 的 SessionManager 配置和设置的信息。根据您的具体要求,您可能必须实现自己的 session 管理器,但这个起点应该会提供一些帮助。

关于java - 有没有办法用 Tomcat 指定不同的 session 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/82340/

相关文章:

iphone - 如何管理 Web 驱动的 Iphone 应用程序中的 session

java - 用g++编译jvmti代理失败,但cc工作正常

java - Tomcat如何处理PermGen空间异常?

jsp - 从 tomcat 上的 webapp 渲染 extJs

linux - 无法在 Eclipse Juno 上配置 Tomcat 7

java - 微服务中的 session 替代方案

javascript - 如何在浏览器上点击后退按钮和页面刷新后重新更新查询

java - SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定(bind)不兼容

所选项目的 Java JCombobox 着色在焦点丢失之前不会更新

java - 我想从三个不同的列表中获得一个结果