API服务器应该存储用户会话数据吗?还是应用服务器?

时间:2012-09-11 23:16:10

标签: api node.js architecture webserver

我一直想知道在API服务器上存储会话数据的优点/缺点是什么。在API服务器上存储会话数据似乎更直观,但我可以看到保持API无状态并使用访问令牌访问数据的好处。

你有什么想法?

谢谢! 马特

2 个答案:

答案 0 :(得分:0)

我想说,将会话存储在除应用服务器和API服务器之外的服务器中是很好的。

由于速度问题,memcachedRedis用作会话存储空间。它们很快,因为它们基于内存

对于向外扩展,我建议您将会话存储与API和应用程序服务器分开。

即使您在应用程序和API服务器上遇到一段时间的问题,在这种情况下也不会丢失会话。

答案 1 :(得分:0)

从我到目前为止所读到的,都没有。

another similar question询问,在真正的REST样式设置中,Application Server或数据库服务器是否应该保存会话。有几个人回答说,虽然保留在应用程序服务器上(或者在你的情况下是API服务器)有时更快或更方便,但最好将会话存储在数据库或Memcache中。

如果将它们保留在API服务器上,则在服务器崩溃时存在丢失会话的风险。

另外,(我从AJ解释)保留API服务器上的会话只有在以下情况下才能起作用:

  • 您的客户端始终连接到同一台服务器(又名“会话亲和力”)
  • 您的服务器节点都使用公共挂载点来假脱机会话

我不确定第二个在这种情况下是否适用,但数据库和/或Memcache(感谢InspiredJW)的想法听起来确实是最好的选择!

非常感谢

相关问题