Tomcat(版本5在这里)将会话信息存储在内存中。将群集此信息时定期广播到群集中的其他服务器以保持同步。您可以使用数据库存储来使会话保持持久性,但该信息只能定期写入,并且仅用于故障恢复,而不是实际替换内存中会话。有没有办法用Tomcat指定不同的会话存储?
如果您不想使用粘性会话(我们的配置不允许它不幸),这会引发会话不同步的问题。
在其他语言中,Web框架倾向于允许您使用数据库作为主会话存储。虽然这引入了潜在的扩展问题,但它确实使会话管理非常简单。我想知道是否有办法让tomcat以这种方式使用数据库进行会话(从技术上讲,这也将消除对tomcat server.xml中的任何群集配置的需求)。
如果你不使用粘性会话,那么你就违背了servlet规范中的一个要求 - 同一个会话的请求由同一个JVM提供。 Tomcat使这非常困难。将会话保存在数据库中可能会导致丢失更新问题。 – davidsheldon 2009-04-23 20:43:14