上一个环节中说到:主从架构可以保证数据的备份,增强数据稳定,并且采用读写分离的方式,但是同样存在问题,当主机挂了以后,就不能再进行写入操作,针对这个问题提出了哨兵机制,哨兵是运行中的一个redid实例,其中有三个核心功能点:监控、选主、通知
一、监控(通过发送ping命令)
二、选主
三、通知
将最后选出的主机通知到各个从机(哨兵push方式),主要方式是写到固定的区域,当该区域发生更改时会通知到各个实例,同时各个实例也会去拉取该区域内容
主观下线 :当前哨兵ping 超时
客观下线:多数哨兵监控超时,标记为客观下线
选主过程:筛选+打分
筛选:从库的下线情况 从库的网络连接情况 从库与主库的断连情况
打分:
一、优先级最高的从库得分高 通过salve-priority设置
二、和旧主库同步最接近的得分高(通过比较所有从库的offset)
三、Id号小的得分高