设计Web应用程序:会话或无会话

时间:2012-04-10 22:35:56

标签: session cookies web application-design session-less

我希望其他人向我解释,哪种方法更好:使用会话或设计无会话。我们正在开始开发一个新的Web应用程序,但还没有确定要遵循的路径。

无会话设计IMO更为可取:

优点:

  1. 可扩展性。我们可以拥有任意数量的服务器,而无需共享用户会话。他们每个人都可以处理请求(例如通过循环进行负载平衡)。
  2. 保存服务器资源。我们不需要在服务器端分配内存(再次 - 可伸缩性)。
  3. 服务器重启后无需恢复。
  4. 缺点:

    1. 必须在cookie中保留一些用户相关信息(不重要)。
    2. 需要更多编码(但编码不多)。
    3. 在做出最终决定之前,我们需要考虑哪些主题?

2 个答案:

答案 0 :(得分:4)

今天的应用程序可以快速增长(只需查看所有那些“小巧,简单”的工具,如pastebin,jsfiddle等!)。而在某些时候,一个16核高端机是不够的(有些人可能会说“你必须重新编码你的应用程序,以节省CPU电源bla-bla”,但每个服务器的http连接限制也是一个问题) 。因此,如果您计划构建一个可能比预期更受欢迎的公共应用程序,那么启动“无会话”就是最佳选择!说实话,这只会影响那些写大事的人。

会话的杀手专业人士:mySQL数据库的流量要少得多,编码也容易得多。但是当你的应用程序变大时,你将不得不重写整个系统。

答案 1 :(得分:0)

使用REDIS等基于内存的数据解决方案和基于Spring的抽象来处理会话,我认为这个问题在当今的环境中甚至都不成立。显然,尝试使应用程序保持无会话状态会更好,但是根据需要,不必对自己如此费劲。 集中的会话管理也不会导致扩展问题。