redis集群脑裂以及解决方案

Posted 一杯苦茶ol

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis集群脑裂以及解决方案相关的知识,希望对你有一定的参考价值。

   关于reids集群会由于网络等原因出现脑裂的情况,所谓的集群脑裂就是,由于redis master节点和redis salve节点和sentinel处于不同的网络分区,使得sentinel没有能够心跳感知到master,所以通过选举的方式提升了一个salve为master,这样就存在了两个master,就像大脑分裂了一样,这样会导致客户端还在old master那里写入数据,新节点无法同步数据,当网络恢复后,sentinel会将old master降为salve,这时再从新master同步数据,这会导致大量数据丢失。

   解决方案:

    redis中有两个配置参数:

    (旧版本)

      min-slaves-to-write 3

      min-slaves-max-lag 10

    (新版本)

      min-replicas-to-write 3

      min-replicas-max-lag 10

  第一个参数表示最少的salve节点为3个,第二个参数表示数据复制和同步的延迟不能超过10秒

    配置了这两个参数:如果发生脑裂:原master会在客户端写入操作的时候拒绝请求。这样可以避免大量数据丢失。

以上是关于redis集群脑裂以及解决方案的主要内容,如果未能解决你的问题,请参考以下文章

redis集群(主从)脑裂及解决方案

Redis 的脑裂现象和解决方案

Redis 的脑裂现象和解决方案

ES集群Unassigned(脑裂现象)

Zookeeper的脑裂问题及解决方案

脑裂以及Redis主从同步中的坑