为什么需要 Redis 哨兵?

2020-06-30  本文已影响0人  woshishui1243

在说哨兵之前,我们先说下主从复制,Redis 的主从复制模式,一旦主节点出现故障无法提供服务,需要人工介入手工将从节点调整为主节点,同时应用端还需要修改新的主节点地址,这种故障转移的方式对于很多应用场景是不能容忍的。正式由于这个问题,Redis 提供了 Sentinel(哨兵) 架构来解决这个问题。

什么是哨兵?

Redis Sentinel 是一个分布式的架构,它本身也是一个独立的 Redis 节点,只不过它不存储数据,只支持部分命令,它能够自动完成故障发现和故障转移,并通知应用方,从而实现高可用。

Redis Sentinel 包含若干个 Sentinel 节点和 Redis 数据节点,每个 Sentinel 节点会对数据节点和其他 Sentinel 节点进行监控,当发现节点异常时,会对节点做下线标识,如果被标识的是主节点,此时会与其他Sentinel 节点进行协商,当大多数Sentinel 节点都人为主节点不可达时候,会发起选举,选出一个 Sentinel 节点来完成自动故障转移的工作,同时会将这个变化通知给 Redis 的应用方。这个过程是完全自动化的,无需人工干预。

Sentinel 主要提供以下几个功能:

监控:定期检测Redis 数据节点、其他 Sentinel 节点是否可达。
通知:将故障转移的结果通知给应用方。
主节点故障转移:实现从节点晋升为主节点,并维护后续正确的主从关系
配置提供者:客户端在初始化的时候连接 Sentinel 节点集合,从中获取主节点信息。
多个 Sentinel 节点来共同判断故障,可以有效防止误判,同时如果个别 Sentinel 节点不可用,整个 Sentinel 节点集合依然是高可用的。
————————————————
版权声明:本文为CSDN的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://baijiahao.baidu.com/s?id=1651062093310564248&wfr=spider&for=pc

上一篇下一篇

猜你喜欢

热点阅读