Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 设计web应用程序:会话还是无会话_Session_Cookies_Web_Application Design_Session Less - Fatal编程技术网

Session 设计web应用程序:会话还是无会话

Session 设计web应用程序:会话还是无会话,session,cookies,web,application-design,session-less,Session,Cookies,Web,Application Design,Session Less,我希望其他人向我解释,哪种方法更好:使用会话还是无会话设计会话。我们正在开始开发一个新的web应用程序,但还没有决定要走哪条路 无会话设计IMO更可取: 优点: 可伸缩性。我们可以拥有任意数量的服务器,而不必共享一个用户会话。它们中的每一个都可以处理请求(例如,通过循环进行负载平衡) 节省服务器资源。我们不需要在服务器端分配内存(同样-可伸缩性) 服务器重新启动后无需恢复 缺点: 必须在cookie中保存一些与用户相关的信息(不重要) 需要更多的编码(但实际上不需要太多的编码) 在做出最终决定之

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

无会话设计IMO更可取:

优点:

  • 可伸缩性。我们可以拥有任意数量的服务器,而不必共享一个用户会话。它们中的每一个都可以处理请求(例如,通过循环进行负载平衡)
  • 节省服务器资源。我们不需要在服务器端分配内存(同样-可伸缩性)
  • 服务器重新启动后无需恢复
  • 缺点:

  • 必须在cookie中保存一些与用户相关的信息(不重要)
  • 需要更多的编码(但实际上不需要太多的编码)

  • 在做出最终决定之前,我们需要考虑哪些问题?

    今天的应用程序可以快速发展到非常大的规模(只需看看所有那些“微小、简单”的工具,如pastebin、JSFIDLE等!)。在某些情况下,16核的高端机器是不够的(有些人可能会说“你必须重新编码你的应用程序以节省cpu能耗”,但是每台服务器的http连接限制也是一个问题)。因此,如果您计划构建一个可能比预期更受欢迎的公共应用程序,那么启动“无会话”是一个不错的选择!老实说,这只会影响那些写大事的人


    会话的致命优势是:mySQL数据库的流量要少得多,编码也要简单得多。但是,当你的应用程序变大时,你必须重写整个系统。

    使用内存中的数据解决方案,如REDIS和基于spring的抽象来处理会话,我认为这个问题在今天的环境中甚至都不成立。显然,最好尽量减少应用程序会话,但基于需要,不必对自己太苛刻。
    集中式会话管理也不会导致扩展问题。

    堆栈溢出不是进行公开讨论的好地方。请参阅以更合适的形式重新说明问题。我认为您不必有更多的mySQL流量—只需将所有用户保留在内存中(例如,按用户id设置一个大哈希表—这是绝对可行的)。