【问题标题】:Nodejs session management comparing to java server session managementNodejs 会话管理与 java 服务器会话管理的比较
【发布时间】:2016-05-11 04:18:28
【问题描述】:

考虑一个像tomcat 这样的Java Web 应用程序,它处理sessionssessions 存储在内存中(在服务器重启期间可能是serialized 到硬盘)。

对于一个不自己处理会话的nodejs 应用程序,您可以使用托管在https://github.com/expressjs/session 上的一些名为expressjs/session 的库来开发会话。在查看 expressjs/session 文档时,您会看到以下警告:

警告:默认的服务器端会话存储 MemoryStore 是 故意不是为生产环境设计的。它会泄漏 在大多数情况下,内存不会超过单个进程, 并且用于调试和开发。

对我来说,将会话存储在内存中是目前在 java web 应用程序中所做的,没有任何问题。

现在我的问题是:

  1. 将会话存储在内存中是一种不好的做法吗?!
  2. 如果在服务器重新启动期间丢失会话并且性能不是我关心的问题(因为我的应用程序规模),那么在nodejs 中将会话存储在内存中仍然是一个不好的做法吗?! (请看What is the use of a session store?

【问题讨论】:

    标签: node.js session servlets express


    【解决方案1】:

    我认为在记忆中进行会话是一种不好的做法,并且应该只在开发过程中进行。这是因为在某个扩展点上,您将需要集群您的节点进程,由于显而易见的原因,这将无法访问存储在不同进程中的会话。您的应用程序可能永远不需要多个进程,即便如此,有时可能会存储太多不必要的会话,从而导致内存泄漏。我建议使用Redis 作为您的会话存储或其他形式的数据库,如mongoDB,有一个类似的问题问here 可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-08-29
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多