【问题标题】:spring session with redis master/slave configuration - eventual consistency question带有 redis 主/从配置的春季会议 - 最终一致性问题
【发布时间】:2019-08-20 07:14:46
【问题描述】:

我有一个关于在生产环境中使用 Redis 支持实施的春季会议的问题。由于性能原因,我们想知道在主/从配置中使用 Redis 和生菜 readFrom SLAVE_PREFFERED。但我仍然想知道最终的一致性问题。使用生菜 RedisStaticMasterReplicaConfiguration 在 spring 会话上下文中是否有问题?

在 Redis 文档中,我读到可能存在不一致的数据(master 写了一些东西,slave 还没有收到更新)。我正在处理一个相当大的吞吐量,所以在我们在会话中保存一些参数或用户登录后,我可以想象一些更改没有传播到从站,下一个客户端请求应该使用它,但没有t - 因为它们还没有被奴隶收到。我无法自己综合这个错误,但我想这可能是一个极端负载的问题。有人遇到过这种问题吗?这是一个有效的问题吗?

【问题讨论】:

    标签: spring-data-redis spring-session


    【解决方案1】:

    AFAIK Redis 不支持强一致性。 WAIT 命令确实提供了来自特定数量副本的确认,但是有 caveats

    但是 WAIT 只能确保有指定的 其他 Redis 实例中确认的副本数,它确实 不要将一组 Redis 实例变成一个强大的 CP 系统 一致性:在故障转移期间,确认的写入仍然可能丢失, 取决于 Redis 持久性的确切配置。然而 使用 WAIT 失败事件后丢失写入的概率为 大大减少到某些难以触发的故障模式。

    此外,默认情况下复制是异步的(其他选项正在使用 WAIT),在吞吐量非常高的情况下,总是存在复制延迟的可能性。

    【讨论】:

      猜你喜欢
      • 2016-11-04
      • 1970-01-01
      • 2023-04-10
      • 2018-11-30
      • 2015-04-11
      • 2011-12-31
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多