gpt4 book ai didi

web-applications - 扩展 Web 应用程序并使其无状态

转载 作者:行者123 更新时间:2023-12-01 05:34:08 24 4
gpt4 key购买 nike

我正在努力弄清楚如何扩展允许用户登录的任何类型的 Web 应用程序,并依赖于该用户登录来执行任何操作。

例如,假设我有一个 Web 应用程序,它允许用户登录、编辑用户地址簿、向其他用户发送消息以及接收来自用户的消息。

我收到的一些建议是使用动词将我的应用程序划分为服务。所以我会有一个地址簿编辑服务、一个消息发送服务、一个消息接收服务和一个身份验证服务。所有这些都可以单独进行水平扩展,并且不会共享数据。这将是理想的,只有他们必须共享数据 - 当前登录的用户。我无法从概念上理解这将如何工作?我应该只是在服务之间发送用户 ID 并且隐含的是登录的用户吗?如果我想使用有关用户当前正在做什么的信息来维护 session 状态,该怎么办?

最佳答案

在某个时候,所有的 Web 服务器都必须汇聚到某个地方。那个地方通常是数据库集群。在初始身份验证时,您可以生成一个随机字符串并将其存储在数据库中用户当前的身份验证 cookie 列表中。每次将 cookie 传递到其中一台服务器时,服务器都可以检查数据库集群以查看 cookie 与哪个用户(如果有)相关联。

我会补充一点,您不需要数据库集群。您可以将数据库分布在各个站点上。但是,某些操作需要同步。在初始登录时生成 cookie(不会经常发生)就是其中之一。否则,您将混合使用识别和不识别 cookie 的服务器。

关于web-applications - 扩展 Web 应用程序并使其无状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773332/

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