关于redis:Redis-Sentinel-哨兵实现原理之三个定时任务

2次阅读

共计 760 个字符,预计需要花费 2 分钟才能阅读完成。

Redis Sentinel 的根本实现原理,具体蕴含以下几个方面:

  • 三个定时工作
  • 主管下线
  • 主观下线
  • Sentinel 领导者选举
  • 故障转移

本节对 三个定时工作 开展阐明。
Redis Sentinel 通过三个定时工作实现对各个节点发现和监控:

  • 每隔 10 秒;
  • 每隔 2 秒;
  • 每隔 1 秒;

每隔 10 秒

每隔 10 秒,每隔 Sentinel 节点会向主节点和从节点发送 info 命令获取最新的拓扑图。

作用体现

  • 通过向主节点执行 info 命令,获取从节点信息,这也是为什么 Sentinel 节点不须要显示配置监控从节点;
  • 当有新的从节点退出时能够立刻感知到;
  • 节点不可达或故障转移后,能够通过 info 命令实时更新节点拓扑信息;

每隔 2 秒

每隔 2 秒,每个 Sentinel 节点会向 Redis 数据节点的 __sentinel__:hello 频道发送该 Sentinel 节点对于主节点的判断以及以后 Sentinel 节点的信息,同时每个 Sentinel 节点也会订阅该频道,来理解其余 Sentinel 节点以及它们对主节点的判断。

工作内容

  • 发现新的 Sentinel 节点:通过订阅主节点的 __sentinel__:hello 理解其余 Sentinel 节点信息,如果是新退出的 Sentinel 节点,将该 Sentinel 节点信息保存起来,并于该 Sentinel 节点创立连贯。
  • Sentinel 节点之间替换主节点的状态,作为前面主观下线以及领导者选举的根据。

每隔 1 秒心跳检测

每隔 1 秒,每个 Sentinel 节点会向主节点、从节点、其余 Sentinel 节点发送一条 ping 命令做一次心跳检测,来确认这些节点以后是否可达。

作用体现

通过每 1 秒定时工作,Sentinel 节点对主节点、从节点、其余 Sentinel 节点都建设起连贯,实现了对每个节点的监控,这个定时工作是判断节点是否可用的重要依据。

参考:《Redis 开发与运维》

正文完
 0