哨兵模式
哨兵简介
哨兵概念
哨兵(sentinel)是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。
哨兵作用
监控:监控master和slave
不断的检查master和slave是否正常运行
master存活检测、master与slave运行情况检测
通知(提醒):当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知
自动故障转移:断开master与slave连接,选取一个slave作为master,将其他slave连接新的master,并告知客户端新的服务器地址
注意:哨兵也是一台redis服务器,只是不提供数据相关服务,通常哨兵的数量配置为单数
启用哨兵
配置哨兵
- 配置一拖二的主从结构(利用之前的方式启动即可)
- 配置三个哨兵(配置相同,端口不同),参看sentinel.conf文件
1: 设置哨兵监听的主服务器信息, sentinel_number表示参与投票的哨兵数量
1 | sentinel monitor master_name master_host master_port sentinel_number |
2: 设置判定服务器宕机时长,该设置控制是否进行主从切换
1 | sentinel down-after-milliseconds master_name million_seconds |
3: 设置故障切换的最大超时时间
1 | sentinel failover-timeout master_name million_seconds |
4: 设置主从切换后,同时进行数据同步的slave数量,数值越大,要求网络资源越高,数值越小,同步时间越长
1 | sentinel parallel-synvs master_name sync_slave_number |
启动哨兵
1 | redis-sentinel filename |