如何跨同一个 Web 应用程序的多个实例存储会话信息? [复制]
Posted
技术标签:
【中文标题】如何跨同一个 Web 应用程序的多个实例存储会话信息? [复制]【英文标题】:How can i store session information across multiple instances of the same web application? [duplicate] 【发布时间】:2022-01-21 05:03:08 【问题描述】:look at the architecture first.
假设我有一个 monolith 在线电子商务网络应用程序,我使用会话 ID 来存储他/她以后想购买的用户物品。
由于请求量大,我决定在负载均衡器后面的同一应用程序的多台机器上创建多个实例,假设负载均衡器随机将请求重定向到实例。
有哪些方法可以跨机器记住用户? 因为我根本无法使用基于 HTTP cookie 的身份验证。(因为所有实例都在不同的 Web 服务器上运行) 在这种情况下,什么方法在 IT 界流行?【问题讨论】:
***.com/questions/48293319/…这可能已经回答了 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。 【参考方案1】:简单,但肮脏:如果您使用的是 k8s 或 openShift,请配置粘性会话(通过 cookie,一个客户端将始终植根到同一个后端 pod,请参阅 this question by migueltaoliveira)。
正确的实现:使用持久层来存储基于会话的信息。这种层的主要候选者是redis (redis.io
)和memcached (memcached.org
)等服务。
【讨论】:
以上是关于如何跨同一个 Web 应用程序的多个实例存储会话信息? [复制]的主要内容,如果未能解决你的问题,请参考以下文章