Nodejs会话pipe理与java服务器会话pipe理相比较

考虑一个类似tomcat的Java web应用程序,它处理sessionssessions存储在内存中(并且可以在服务器重启时serialized到硬盘)。

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

警告:默认的服务器端会话存储器MemoryStore故意不是为生产环境而devise的。 它会在大多数情况下泄漏内存,不会通过单个进程扩展,而是用于debugging和开发。

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

现在我的问题是:

  1. 在会话中存储会话是一个不好的做法?!
  2. 如果在服务器重新启动期间失去会话并且性能不是我所关心的(因为我的应用程序规模),将会话存储在内存中仍然是nodejs不好的做法? (请参阅会话存储的用途是什么? )

我认为在内存中进行会话是不好的做法,只有在开发过程中才应该做。 这是因为在一定程度上,您需要对节点进程进行集群化,这显然会导致无法访问存储在不同进程中的会话。 您可能永远不需要为您的应用程序提供多个进程,即使如此,在某些时候可能会出现一些导致内存泄漏的不必要的会话存储。 我build议与Redis一起作为你的会话存储或者像mongoDB这样的一些其他forms的数据库,在这里有一个类似的问题可能会有帮助。