Redis学习_12_哨兵_工作原理<一>
哨兵的主要作用就是进行主从切换,在这个过程中,有3个阶段:
- 监控
- 通知
- 故障转移
下面学习各个阶段的内容。
监控阶段
第一个sentinel启动的时候:
- sentinel连接master,通过info命令获取master的信息。
- 拿到master的信息后,建立一个和master之间的cmd连接,方便传输命令。之后在自身和master中都存一份关于sentinel、master、slave的信息。
- 通过master中的信息,取连接slave,获取slave的info。
第二个sentinel启动的时候:
- 连接master,建立cmd连接。
- 发现master中有“SentinelRedisInstance”,其中有记录其他sentinel的信息,于是在自身创建SentinelState时,会在sentinels里加上其他sentinel的信息。
- 为了保障和其他sentinel之间数据同步,sentinel之间建立一个发布订阅的通道。
- 为了保证sentinel之间数据长期一致,会互相发ping命令。
- 连接slave。
第三个sentinel启动的时候:
- 会重复上一个sentinel的过程,此外,还会跟其他sentinel建立发布订阅通道,用于传播信息。