哨兵
上一章讲到了 redis 的复制,在一主多从的架构下,从库起到了数据冗余备份和读写分离的作用。但是一旦主库发生异常,且在人工不能及时处理的情况下,就会造成严重的后果。想让人工来24小时监测服务器是万万不可能的,这辈子都不可能。但是 redis 提供了专门的工具来监测服务,那就是哨兵。
作用
1、监控主从数据库是否正常运行。
2、主库出现故障时自动将从库切换为主库。
架构
单一哨兵
多个哨兵:哨兵之间也会互相监控。
配置
1、建立一个配置文件,如 sentinel.conf,内容为 sentinel monitor mymaster 127.0.0.1 6379 1
mymaster 为要监控的主库名字。自定义,仅由大小写字母、数字和“.-_”三个字符组成。
1 表示最低通过票数。
2、启动 Sentinel 进程,将配置文件路径传递给哨兵。
redis-sentinel /path/to/sentinel.conf
注:只需要配置哨兵监控主库即可,哨兵会自动发现该主库的从库并监控。
过程
哨兵会定时执行下面三个操作:
1、每10秒向主从库发送 INFO 命令。
- 获得主库的从库列表,并连接从库。
- 获取主从库的角色。
2、每2秒向主从库的 __sentinel__:hello 频道发送自己的信息。
- 与同样监控该库的哨兵分享配置信息,并建立哨兵之间的连接。
3、每1秒向主从库、哨兵节点发送 PING 命令。
- 通过是否回复 PING 来判断服务是否停止。(主从库、哨兵)
先简单了解,后期悟到新的来补充。