1.什么是哨兵
顾名思义 哨兵就是监控集群服务器是否正常的,有一个或多个sentinel实例组成
的sentinel系统可以监视任意多个服务器,如果主服务器下线,自动将线下从服务器
升级为最新的主服务器,新的服务器代替已下线的主服务器执行命令,如果从服务器
复活,将成为新主服务器的从服务器
2.sentinel是什么?
sentinel从本质上来说也是Redis服务器,而且是运行在特殊模式下的Redis服务器。
由于使用了他的专用代码,并没有加载redis服务器的命令代码,而是加载了专用的
代码。
3.sentinel与服务器的连接
哨兵通过每10秒一次的频率获取主服务器的信息,
- 创建命令连接
向服务器发送命令,并接受服务器返回的命令
2.创建订阅连接
专门接受sentinel:hello频道的订阅
sentinel与sentinel连接通过命令连接,目的是交换同步信息
默认情况下,sentinel会以每两秒一次的频率,通过命令连接想所有被监视的服务器(主+从)
发送命令,信息有多个参数组成
1.检测主观下线状态(哨兵自己判断的):
sentinel每个一秒向所连接的主从服务器,sentinel发送ping命令来检测是否在线
如果在down-after-millseconds时间内没有返回,就认为是主观下线状态
2.客观下线状态
sentinel 向其他监视这一服务器的sentinel进行询问,看是否进入下线状态如果
从其他sentinel接受到足够数量的下线判断以后,sentinel 就为认为是客观下线
进项故障转移