Reids 主从复制

您所在的位置:网站首页 redis脑裂解决方案 Reids 主从复制

Reids 主从复制

2024-07-11 16:23| 来源: 网络整理| 查看: 265

1、什么是脑裂

redis的主从模式下脑裂是指因为网络问题,导致redis master节点跟redis slave节点和sentinel集群处于不同的网络分区,此时因为sentinel集群无法感知到 master 的存在,就会将某一个 slave 节点提升为 master 节点。此时就存在两个不同的 master节点,就像一个大脑分裂成了两个。

集群脑裂问题中,如果客户端还在基于原来的 master 节点继续写入数据,那么新的master 节点将无法同步这些数据,当网络问题解决之后,sentinel 集群将原先的master节点降为 slave 节点,此时再从新的 master 中同步数据,将会造成大量的数据丢失。

 

二、脑裂造成的问题

此时虽然某个slave被切换成了master,但是可能client还没来得及切换成新的master,还继续写向旧的master的数据可能就丢失了。

因此旧master再次恢复的时候,会被作为一个slave挂到新的master上去,自己的数据会被清空,重新从新的 master复制数据。

最终导致的结果就是数据丢失。

 

三、redis 脑裂的解决方案

min-slaves-to-write 3 min-slaves-max-lag 10

第一个参数表示至少 master 要有1个slave节点,才允许写入

第二个参数表示 slave 连接到 master 的最大延迟时间

按照上面的配置,要求 master 下至少有一个 slave 节点,并且数据复制和同步的延迟时间不能超过10秒,否则 master 将会拒绝写入请求。

注意:这里的 min-slaves-to-write 配置要根据实际生产中,slave 的数量决定,采用半数机制,也就是说,比 slave 节点数的一半多一个,比如 1个master,8个slave,那就设置为5

  较新版本的 redis.conf 文件中的参数变成了

min-replicas-to-write 3 min-replicas-max-lag 10

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3