一、获取主服务器信息
Sentinel默认会以每十秒一次的频率, 通过命令连接向被监视的主服务器发送INFO命令,并通过分析INFO命令的回复来获取主服务器的当前信息
举个例子,假设如下图所示,主服务器master有三个从服务器slave0、slave1和 slave2,并且一个Sentinel正在连接主服务器,那么Sentinel将持续地向主服务器发送INFO命令,并获得类似于第2张图所以内容的回复:
INFO命令回复的信息内容:
通过分析主服务器返回的INFO命令回复,Sentinel可以获取以下两方面的信息:
一方面是关于主服务器本身的信息,包括run_id域记录的服务器运行ID,以及role域记录的服务器角色
另一方面是关于主服务器属下所有从服务器的信息,每个从服务器都由一个"slave"字符 串开头的行记录,每行的ip=域记录了从服务器的IP地址,而port=域则记录了从服务器的端 口号。根据这些IP地址和端口号,Sentinel无须用户提供从服务器的地址信息,就可以自动发现从服务器<