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集群脑裂以及解决方案的主要内容,如果未能解决你的问题,请参考以下文章