安装部署
环境准备
部署过程
port 6377daemonize yeslogfile "/redis_data/log/redis_6377.log"dir "/redis_data/data/6377"dbfilename "dump_6377.rdb"
redis-server usr/local/redis/etc/redis_6377.conf
redis-cli -h 127.0.0.1 -p 6377127.0.0.1:6377> pingPONG
slaveof 127.0.0.1 6377
redis-server usr/local/redis/etc/redis_6378.confredis-server /usr/local/redis/etc/redis_6379.conf
[redis@localhost etc]$ redis-cli -h 127.0.0.1 -p 6377 info replication# Replicationrole:masterconnected_slaves:2slave0:ip=127.0.0.1,port=6378,state=online,offset=308,lag=0slave1:ip=127.0.0.1,port=6379,state=online,offset=308,lag=1
port 26377dir "/redis_data/data/26377"logfile "/redis_data/log/redis-26377.log"#配置主节点的IP和端口,2代表主节点判断失败至少需要2个Sentinel节点同意,一般设置为Sentinel节点数的一半加1.sentinel monitor mymaster 127.0.0.1 6377 2#30秒ping不通主节点的信息,主观认为master宕机sentinel down-after-milliseconds mymaster 30000#故障转移时从节点同时向新主发起复制请求的数量,1代表从节点会轮询发起复制。sentinel parallel-syncs mymaster 1#故障转移开始,180秒内没有完成,则认为转移失败sentinel failover-timeout mymaster 180000
redis-sentinel sentinel-26377.confredis-sentinel sentinel-26378.confredis-sentinel sentinel-26379.conf
[redis@localhost redis]$ redis-cli -h 127.0.0.1 -p 26377 info Sentinel# Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0sentinel_simulate_failure_flags:0master0:name=mymaster,status=ok,address=127.0.0.1:6377,slaves=2,sentinels=3
故障转移
127.0.0.1:26377> info sentinel# Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0sentinel_simulate_failure_flags:0master0:name=mymaster,status=ok,address=127.0.0.1:6378,slaves=2,sentinels=3
每个Sentinel节点每隔1秒对主、从、其他Sentinel阶段发送ping探测,超过down-after-milliseconds未返回响应,则判断该节点主观下线。
Sentinel节点向其他Sentinel节点询问对于异常节点的判断,当达到 quorum个sentinel节点都认为被主观下线的节点异常时,则对该节点做客观下线。
在sentinel节点中通过Raft算法选举出一个leader来完成故障转移。
当出现故障的节点是主节点时,sentinel leader会根据优先级、复制偏移量、runid等在从节点中选出一个作为主节点,执行slaveof no one命令。
leader向其他从节点发送指令,让他们成为新主的从节点,并将原来的主节点更新为从节点,当旧主恢复后去复制新主的数据。
复制完成后,发布主节点的切换消息。
最后修改时间:2021-02-18 14:59:38
文章转载自MySQL数据库技术栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




