首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Tomcat6的基于MongoDB的会话存储

用于Tomcat6的基于MongoDB的会话存储
EN

Stack Overflow用户
提问于 2011-09-07 00:38:21
回答 3查看 1.9K关注 0票数 3

有没有办法让用户MongoDB作为Tomcat6的中央会话存储?如果是这样的话,我们可以让tomcat服务器集群从MongoDB读取会话数据,这样集群就可以动态地调整大小(动态添加更多的盒子),而不需要粘性会话吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-07 21:19:36

我想我找到我要找的东西了。

https://github.com/dawsonsystems/Mongo-Tomcat-Sessions

如果有人在生产中使用过它,我很想听听您的经验。

票数 2
EN

Stack Overflow用户

发布于 2011-09-07 01:02:22

Tomcat/J2EE会话有一个getId()方法,该方法返回当前用户的会话ID。当然,您可以使用它作为MongoDB中的sessions集合的键,并存储您想要的任何数据。

我不知道有没有专门与Tomcat6集成的预构建工具,但这并不意味着它们不存在。但这是一个相当简单的任务,在给定HttpSessionHttpServletRequest的情况下,编写自己的DAO来访问会话数据可能是最简单的。

如果您的会话数据是您维护的唯一共享状态,那么将其移动到MongoDB (或任何应用程序外数据库或工具)将使您能够按照您的建议进行扩展。如果您在应用程序服务器上维护了其他状态,那么您将需要确定如何将其从应用程序服务器移出并转移到共享资源上。

票数 0
EN

Stack Overflow用户

发布于 2013-10-03 12:48:56

我认为有一种更好的方式使用MongoDD来存储会话,只需使用Servlet-Api函数,而不使用专有的Appserver-特性。

  1. 首先,您需要基于用于存储属性的映射创建您自己的HttpSession实现
  2. 您需要创建一个覆盖getSession方法并返回implementation
  3. You的HttpServletRequest实现(使用HttpServletRequest包装器)需要创建一个过滤器,根据您创建的HttpRequest替换给定的

,并执行MongoDB处理以加载和存储属性映射

您可以在此处找到一些代码示例(遗憾的是使用德语):http://mibutec.wordpress.com/2013/09/23/eigenes-session-handling-in-webapplikationen/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7323260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档