
# 哨兵原理
#### Sentinel概览
Redis Sentinel为Redis实现高可用。实际使用中，您可以使用Sentinel帮助Redis在无需人工干预的情况下抵御某些类型的故障，Redis Sentinel还能够完成其他辅助任务，如监控、通知和客户端配置。详细介绍可参考[Redis官网](https://redis.io/topics/sentinel)。
#### Sentinel原理
Redis Sentinel是一个分布式系统，Sentinel的设计基础在于多个Sentinel进程协同工作，这样做的好处有：
1. 只有当多个哨兵一致同意某主节点不可用，才执行故障检测，这能够降低误报的可能性。
2. 即使有些Sentinel进程故障，Sentinel系统也能正常工作，从而抵御故障。
从更大范围来看，Sentinel加上Redis主从节点以及连接到Sentinel和Redis的客户端，整体也构成一个更大的分布式系统。
#### Sentinel功能
- 监控：Sentinel不间断地检查主从节点是否都在正常工作。
- 通知：如果Redis中某节点故障，Sentinel可以通过API通知系统管理员或其他计算机程序。
- 自动故障切换：如果主节点异常，Sentinel启动故障切换，将一个从节点升主，其他从节点从新的主节点进行复制，并通知使用该Redis的应用程序使用新地址进行连接。
- 客户端配置来源：Sentinel充当客户端服务发现的权威来源。客户端连接到Sentinel，请求当前负责特定业务的Redis主节点地址。如果发生故障切换，Sentinels将下发新地址。
 
#### DCS如何使用Sentinel
**Sentinel对用户不可见，仅在服务内部中使用。**
关于DCS是否支持客户端使用哨兵模式接入，请参考：[DCS是否支持客户端使用哨兵模式接入？](https://support.huaweicloud.com/dcs_faq/dcs-faq-0427030.html)
