有没有办法让用户MongoDB作为Tomcat6的中央会话存储?如果是这样的话,我们可以让tomcat服务器集群从MongoDB读取会话数据,这样集群就可以动态地调整大小(动态添加更多的盒子),而不需要粘性会话吗?
发布于 2011-09-07 21:19:36
发布于 2011-09-07 01:02:22
Tomcat/J2EE会话有一个getId()方法,该方法返回当前用户的会话ID。当然,您可以使用它作为MongoDB中的sessions集合的键,并存储您想要的任何数据。
我不知道有没有专门与Tomcat6集成的预构建工具,但这并不意味着它们不存在。但这是一个相当简单的任务,在给定HttpSession或HttpServletRequest的情况下,编写自己的DAO来访问会话数据可能是最简单的。
如果您的会话数据是您维护的唯一共享状态,那么将其移动到MongoDB (或任何应用程序外数据库或工具)将使您能够按照您的建议进行扩展。如果您在应用程序服务器上维护了其他状态,那么您将需要确定如何将其从应用程序服务器移出并转移到共享资源上。
发布于 2013-10-03 12:48:56
我认为有一种更好的方式使用MongoDD来存储会话,只需使用Servlet-Api函数,而不使用专有的Appserver-特性。
,并执行MongoDB处理以加载和存储属性映射
您可以在此处找到一些代码示例(遗憾的是使用德语):http://mibutec.wordpress.com/2013/09/23/eigenes-session-handling-in-webapplikationen/
https://stackoverflow.com/questions/7323260
复制相似问题