Redis Sentinel知识

Sentinel

Redis服务器被一到多个Sentinel示例监视,sentinel维持Redis的高可用。

1.sentinel启动

redis-server /redisPath/sentinel.conf --sentinel
或redis-sentinel /redisPath/sentinel.conf

sentinel启动步骤包括如下:
1.初始化服务器
2.初始化sentinel状态
3.根据配置文件,初始化Sentinel监视主服务器列表
4.创建连向主服务器的网络连接

1.初始化服务器

sentinel和普通的redis服务器工作状态方式不同,因此不需要像普通服务器那样初始化时载入RDB和AOF文件,并且功能使用情况也有所不同。

在这里插入图片描述

2.初始化Sentinel

Sentinel状态中的masters记录所有被Sentinel监视的主服务器的信息。

3.创建连向主服务器的网络连接

初始化Sentinel需创建连向监视主服务器的网络连接,一般会创建两个连接:
1.命令连接,用于向主服务器发送命令,并接收回复。
2.订阅连接,用于订阅主服务器的频道。
在这里插入图片描述

2.获取主服务器信息

Sentinel每十秒一次,向master发送info,获取master当前信息。
返回信息包括master本身信息和从雾浮起的信息。

3.获取从服务器信息

当Sentinel发觉有新的从服务器出现时,会创建实例并给创建连接到从服务器的连接和订阅连接。

4.向master和slave发送信息

Sentinel默认每两秒发送命令连接所有被监视的主从服务器。获取服务器的名字,ip地址,端口号等。

5.接收主从服务器的频道信息

Sentinel与服务器建立订阅连接后,会发送命令连接和订阅连接,sentinel会定时接收连接后的频道信息。如果发现信息中记录的Sentinel运行ID和接收信息的Sentinel运行ID相同,则说明该信息由自己发送的,则不做处理。如果发现不同,则该信息时由其他Sentinel发来,会对主服务器实例结构更新,实例结构包括主从服务器的信息,还有各个Sentinel的监视情况。
Sentinel只与主从服务器创建命令和订阅连接,Sentinel之间只创建命令连接。

5.监控master下线状态

Sentinel美妙向实例(主从服务器,其他Sentinel)发送PING命令,并根据返回判断是否在线,若指定时长内接收到无效回复,则人为器主管下线。当判断为主观下线后,会向同样监视该主服务器的其他Sentinel询问是否同意主观下线,并进行投票,若获得够多的投票则判断为客观下线,则会对该master进行故障转移。

发布了79 篇原创文章 · 获赞 3 · 访问量 5244

猜你喜欢

转载自blog.csdn.net/SW_LCC/article/details/103439852