gpt4 book ai didi

ruby-on-rails-3 - 使用 ActiveRecordStore + 粘性 session 的 RoR Cookie

转载 作者:行者123 更新时间:2023-12-03 00:45:15 25 4
gpt4 key购买 nike

我有一个 RoR Web 应用程序(带有 mysql),它在多个相同的服务器上进行负载平衡。该应用程序需要 cookie 和 session 才能运行。

目前,客户端始终路由到负载均衡器后面的同一服务器,如果该服务器被关闭,客户端将被路由到不同的服务器,并且它们的 session 将结束。

当前架构的负载均衡器只会对同一数据中心内的机器进行负载均衡。我想使用多个数据中心,通过 DNS 循环在地理上实现负载平衡,并提供额外的冗余。

如果我要在 RoR 应用程序中打开 ActiveRecordStore 以进行 session 存储,这应该可以解决上述问题,客户端可以路由到每台服务器,并且它们的 session 将完好无损。这是正确的吗?

使用 ActiveRecordStore 进行 session 是否会产生严重后果?

最佳答案

快速回答:鉴于所有数据中心的所有服务器都与同一个数据库通信,是的,这可以解决您遇到的问题。

后果:这里明显的问题是来自不同数据中心的所有服务器都通过数据库与一个数据中心进行通信。这是非常低效的,因为它抵消了将应用程序分发到不同数据中心所带来的大部分 yield 。您当然可以尝试通过互联网复制 mysql,但这可能会导致数据最终保持一致,这意味着在切换服务器时,用户可能仍然面临无效 session 。

替代方案:用于存储 session 的全局分布式存储(有点像 cassandra 环或 riak)可能会工作得更好,因为这些数据库旨在保持同步并提供对数据的一致访问。

关于ruby-on-rails-3 - 使用 ActiveRecordStore + 粘性 session 的 RoR Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546471/

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