突破Java面试(23-7) - Redis的哨兵架构
Github
1 Redis Sentinal机制
sentinal,中文名哨兵
哨兵是redis集群架构中非常重要的一个组件,主要功能如下
- 集群监控
监控Redis master和slave进程的正常工作 - 消息通知
如果某个Redis实例有故障,那么哨兵负责发送报警消息给管理员 - 故障转移
若master node宕机,会自动转移到slave node上 - 配置中心
若发生故障转移,通知client客户端新的master地址
哨兵本身也是分布式的,作为一个哨兵集群去运行,协同工作
- 故障转移时,判断一个master node是否宕机,需要大部分的哨兵都同意,涉及到了分布式选举问题
- 即使部分哨兵节点宕机,哨兵集群还是能正常工作的
目前采用的是sentinal 2版本,sentinal 2相对于sentinal 1来说,重写了很多代码,主要是让故障转移的机制和算法变得