Redis学习_12_哨兵_工作原理<一>

哨兵的主要作用就是进行主从切换,在这个过程中,有3个阶段:

  • 监控
  • 通知
  • 故障转移

下面学习各个阶段的内容。

监控阶段

Redis学习_12_哨兵_工作原理<一>

第一个sentinel启动的时候:

  1. sentinel连接master,通过info命令获取master的信息。
  2. 拿到master的信息后,建立一个和master之间的cmd连接,方便传输命令。之后在自身和master中都存一份关于sentinel、master、slave的信息。
  3. 通过master中的信息,取连接slave,获取slave的info。

第二个sentinel启动的时候:

  • 连接master,建立cmd连接。
  • 发现master中有“SentinelRedisInstance”,其中有记录其他sentinel的信息,于是在自身创建SentinelState时,会在sentinels里加上其他sentinel的信息。
  • 为了保障和其他sentinel之间数据同步,sentinel之间建立一个发布订阅的通道。
  • 为了保证sentinel之间数据长期一致,会互相发ping命令。
  • 连接slave。

第三个sentinel启动的时候:

  • 会重复上一个sentinel的过程,此外,还会跟其他sentinel建立发布订阅通道,用于传播信息。