更新时间:2024-07-29 GMT+08:00

什么是哨兵?

Sentinel概览

Redis Sentinel为Redis实现高可用。实际使用中,您可以使用Sentinel帮助Redis在无需人工干预的情况下抵御某些类型的故障,Redis Sentinel还能够完成其他辅助任务,如监控、通知和客户端配置。详细介绍可参考Redis官网

Sentinel原理

Redis Sentinel是一个分布式系统,Sentinel的设计基础在于多个Sentinel进程协同工作,这样做的好处有:

  1. 只有当多个哨兵一致同意某主节点不可用,才执行故障检测,这能够降低误报的可能性。
  2. 即使有些Sentinel进程故障,Sentinel系统也能正常工作,从而抵御故障。

从更大范围来看,Sentinel加上Redis主从节点以及连接到Sentinel和Redis的客户端,整体也构成一个更大的分布式系统。

Sentinel功能

  • 监控:Sentinel不间断地检查主从节点是否都在正常工作。
  • 通知:如果Redis中某节点故障,Sentinel可以通过API通知系统管理员或其他计算机程序。
  • 自动故障切换:如果主节点异常,Sentinel启动故障切换,将一个从节点升主,其他从节点从新的主节点进行复制,并通知使用该Redis的应用程序使用新地址进行连接。
  • 客户端配置来源:Sentinel充当客户端服务发现的权威来源。客户端连接到Sentinel,请求当前负责特定业务的Redis主节点地址。如果发生故障切换,Sentinels将下发新地址。