A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jessie001 中级黑马   /  2020-5-29 10:33  /  1441 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Redis 哨兵架构

1、哨兵介绍

哨兵主要功能如下:

- 集群监控,复制监控redis master和slave进程是否正常工作
- 消息通知,如果某个redis实例有故障,那么哨兵复制发送消息作为报警通知管理员
- 故障转移,如果master node挂掉,会自动转移到slave node上
- 配置中心,如果故障转移发了,通知client客户端新的master地址

哨兵核心知识:

- 哨兵至少需要3个实例,来保证自己的健壮性
- 哨兵+redis主从部署结构,不会保证数据零丢失,只能保证redis集群高可用
- 哨兵+redis主从部署结构,尽量在测试环境和生产环境,进行充足的测试和容灾演练

2、哨兵数据丢失

2.1 异步复制导致的数据丢失

master -> slave的复制是异步的,所以部分数据还没有复制到slave,master就宕机了,这个时候哨兵将slave晋升为master,这个时候内存中还没复制的部分数据就会丢失


2.2 脑裂导致的数据丢失

master脱离正常网络,跟其他slave无法连通,但是master依然运行,此时哨兵可能认为master宕机,开始选举,将其他slave切换成master,这时候集群就会有两个master,这就是脑裂。

此时虽然slave被切换成master,但是cclient还没有切换到新master,还继续向master写入数据,这个时候旧master恢复,被作为一个slave挂到新master上,自己的数据全部清空,重新去新master复制数据,这就导致数据丢失



2.3 解决数据丢失

    min-slaves-to-write 1
    min-slaves-max-lag 10
    至少有1个slave,数据复制和同步的延迟不能超过10秒
    如果说所有的slave,数据复制和同步的延迟都超过10秒钟,那么这时候master就不会在接收任何请求


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马