redis7基础篇2 redis的哨兵模式2

目录

一 哨兵模式

1.1 redis的哨兵模式作用

1.2 redis的哨兵模式架构

1.3 redis的哨兵模式参数说明

二  redis的哨兵模式搭建

2.1 redis的主从复制模式

2.2 redis的sentinel配置文件

2.3 redis的实例节点和sentinel节点启动

3.3 redis的哨兵模式原理

3.3.1 redis的哨兵模式操作原理

3.4 redis的哨兵模式优缺点


一 哨兵模式

1.1 redis的哨兵模式作用

1.主从监控:监控主从redis库运行是否正常

2.消息通知:哨兵可以将故障转移的结果发送给客户端

3.故障转移:如果master异常,则会进行主从切换,将其中一个slave作为新的master

4.配置中心:客户端通过连接哨兵来获得当前redis服务的主节点地址。

1.2 redis的哨兵模式架构

3个哨兵:自动监控和维护集群,不存放数据,只是吹哨人。

1主2从:用于数据读取和存放。

1.3 redis的哨兵模式参数说明

Bind:服务监听地址,用于客户端连接,默认本机地址。

Dameonize:是否以后台daemon方式运行

Protected-mode: 安全保护模式

Port: 端口

Logfile: 日志文件路径

Pidfile: pid文件路径

Dir:工作目录

Sentinel monitor 《master-name》《ip》 《redis-port》《quorum》 设置要监控master服务器。Quorum 表示最少有几个哨兵认可客观下线,同意故障迁移的法定票数。

Sentinel auth-pass 《master-name》 《password》:master设置了密码,连接master服务的密码。

Sentinel down-after-milliseconds <master-name> <milliseconds>

指定多少毫秒之后,主节点没有应答哨兵,此时哨兵主观上认为主节点下线。

Sentinel parallel -syncs 《master-name》《nums》

表示允许并行同步的slave个数,当master挂了后,哨兵会选出新的master,此时,剩余的slave会向新的mster发起同步数据。

Sentinel failvoer-timeout 《master-name》<milliseconds>

故障转移的超时时间,进行故障转移时,如果超过设置的毫秒,表示故障转移失败。

Sentinel notification-script 《master-name》《script-path》

配置当某一事件发生时所需要执行的脚本。

Setinle client-reconfig-script 《master-name》《script-path》

二  redis的哨兵模式搭建

2.1 redis的主从复制模式

先搭建好主从复制模式

 在6379配置文件中:6379后续可能会变成从机,需要设置访问新主机的密码,请设置masterauth项访问密码为111111,不然后续可能报错master_link_status:down

在6380配置文件中:设置校验密码和隶属主master的ip

在6381配置文件中:设置校验密码和隶属主master的ip

2.2 redis的sentinel配置文件

由于机器硬件关系,我们的3个哨兵都同时配置进192.168.111.169的同一台机器。

 

配置文件sentinel26379.conf内容:

配置文件sentinel26380.conf内容:

配置文件sentinel26381.conf内容:

2.3 redis的实例节点和sentinel节点启动

1.三台实例的主从启动

 2.启动3个哨兵,并查看主从关系

2.根据哨兵原理,本案例选举6381,为新的master节点

3.重启6379,可以看到原来的master变为了slave

4.登录6381服务,查询已有两个slave节点 

3.3 redis的哨兵模式原理

当一个主从配置的master失效后,sentinel可以选举出一个新的master,用于自动接替原来master的工作,主从配置中的其他redis服务器自动指向新的master同步数据,一般建议sentinel采取奇数台,防止某一台sentinel无法连接到master导致误切换。选举过程中,文件的内容,会被sentinel动态更改。

3.3.1 redis的哨兵模式操作原理

1主节点下线判断

A)每个哨兵通过down-after-milliseconds设置判断自己监控的master是否触发下线;

B)汇总各个哨兵的结果,多个哨兵打成一致意见才能认为mster客观出现宕机。

2.从哨兵中选出兵王

当主节点被判断客观下线以后,各个哨兵节点会进行协商,通过一个Raft算法,先选举出一个领导者哨兵节点,并由该领导者哨兵节点进行failover故障迁移。哨兵文件的内容解析:

1.sentinel26379.log中,选举0664为哨兵王

2.sentinel26380.log中,选举0664为哨兵王 

3.sentinel26380.log中,选举0664为哨兵王

4.raft算法

3.由兵王推动故障切换选出一个新的master

3.1 从剩余健康的slave节点中,按:

1.选择优先级靠前的:redis.conf中slave-priority,或者replica-priority的最高值(数字越小优先级越高)选取

2.选择偏移量最大的

3.选择runid最小的从服务

3.2 sentinel leader会对选举出的新master执行slave of no noe操作

将其提升为master节点;sentinel leader向其他slave发送命令,让剩余的slave成为新的master节点的slave

3.3 将之前已下线的老master设置为新选出master的从节点:

当老master重新上线后,他会成为新master的从节点;sentinel leader会让原来的master降级为slave兵恢复为正常工作。

3.4 redis的哨兵模式优缺点

1.哨兵节点的数量应该为多个,哨兵本身应该是集群,保证高可用

2.哨兵节点的数量应该是奇数

3.各个哨兵节点的配置应一致

4.如果哨兵节点都部署在Docker等容器里面,尤其要注意端口的正确映射,哨兵+主从复制,但不能保证数据零丢失。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值