redis主从集群搭建及容灾部署(哨兵sentinel)(3)

1. 监控:监控主从是否正常
2. 通知:出现问题时,可以通知相关人员
3. 故障迁移:自动主从切换
4. 统一的配置管理:连接者询问sentinel取得主从的地址

Raft分布式算法

1. 主要用途:用于分布式系统,系统容错,以及选出领头羊
2. 作者:Diego Ongaro,毕业于哈佛
3. 目前用到这个算法的项目有:
a. CoreOS : 见下面
b. ectd : a distributed, consistent shared configuration
c. LogCabin : 分布式存储系统
d. redis sentinel : redis 的监控系统

Sentinel使用的Raft算法核心: 原则

1. 所有sentinel都有选举的领头羊的权利
2. 每个sentinel都会要求其他sentinel选举自己为领头羊(主要由发现redis客观下线的sentinel先发起选举)
3. 每个sentinel只有一次选举的机会
4. 采用先到先得的原则
5. 一旦加入到系统了,则不会自动清除(这一点很重要, why?)
6. 每个sentinel都有唯一的uid,不会因为重启而变更
7. 达到领头羊的条件是 N/2 + 1个sentinel选择了自己
8. 采用配置纪元,如果一次选举出现脑裂,则配置纪元会递增,进入下一次选举,所有sentinel都会处于统一配置纪元,以最新的为标准。

Raft算法核心: 可视图

Raft Visualization (算法演示)

redis主从集群搭建及容灾部署(哨兵sentinel)

Raft分布式算法的应用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d43a9d10e52603e299c6fec64c9521dd.html