gpt4 book ai didi

node.js - 如何处理多个帐户服务器上的 session /同时水平扩展?

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:31 25 4
gpt4 key购买 nike

我正在开发一个网络应用程序,并且想要正确地完成它,所以我将可扩展性放在了我的脑海中。令我困惑的一件事是如何处理多个服务器上的 session 。

简短示例:
假设 Anna 登录我的网页,负载均衡器将她重定向到服务器 X服务器 X 存储 Anna 的 session 数据,并在 Anna 关闭网页后不久。
大约 10 分钟后,Anna 再次打开页面并被重定向到服务器 Y。她的 session 应该还活着。

服务器Y如何知道是她?


├── Anna ─> load-balancer ─> Server X ─> Session Data on X

10 mins pass

└── Anna ─> load-balancer ─> Server Y ─> How to get session data on X?
<小时/>
  • 是否有可能以无 session 方式提供经过身份验证的 API 请求?
  • 将 session 数据存储在中央数据库上是最佳做法吗?
  • 还有其他我可能不知道如何搜索的常见解决方案吗?

我非常感谢您的任何答案,尤其是在 Node/快速应用程序的上下文中。一般来说,我正在寻找最佳实践解决方案,因为我渴望学习。

最佳答案

对于这种情况,您可以检查一些选项:

  1. 如果您需要存储访问 token (oauth),可以使用快速数据库 Redis,在每个请求中通过任何 Node.js 服务器检查 token ( https://redis.io )
  2. 您可以使用 JWT,在这种情况下,由于计算出的符号 ( https://www.npmjs.com/package/jsonwebtoken ), token 是安全的
  3. 使用粘性 session ,在这种情况下,每个用户请求都将发送到同一服务器。不推荐

对于步骤 1 和 2,您可以在 http 授权 header 中发送 token

关于node.js - 如何处理多个帐户服务器上的 session /同时水平扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56840265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com