Redis Sentinel 是 redis的高可用实现方案:故障发现、故障自动转移、配置中心、客户端通知,Jedis原生支持,客户端在连接时,实际连接的Sentinel集合,当Sentinel观测到变化和故障转移后,会Pub到client端,实际使用了redis的pub/sub功能。
参考自
https://cloud.tencent.com/developer/article/1021467
采用了Raft算法,和ZAB类似,都是简化版的Paxos实现
前提:
1. 默认情况下,sentinel都是Follower状态
2. 当Follower判断某个master客观下线,会发起选sentinel-Leader选举
过程中保证:
1. 每次发起投票,epoch都会加1
2. 每轮(epoch用来标识一轮投票,也叫term任期)每个sentinel只会投一次票
3. sentinel都会优先投自己
4. 每轮投票都有超时时间,超时时间内未选出Leader,会开启下一轮
5. 超过半数投票或者投票超过配置,则选出Leader,Leader去完成故障转移
选举算法效率:
1. 率先完成客观下线判断的sentinel,优先开始选举
2. 每个sentinel每轮仅仅投票一次
以上两点基本可以保证一轮就可以选出Leader,因为率先发起的节点会大概率当选Leader
故障转移:
1. 选取最靠谱,数据最新的slave做master;至少考虑 slave心跳是否正常、slave当前的同步偏移量offset(越大表明数据越新)
2. slave当选为新master后,其他slave挂载到它下面
相关推荐
用于Redis Sentinel的Laravel驱动程序 用于Laravel和Lumen的Redis Sentinel集成。 有助于为配置为主从复制的Redis服务器提供高可用性,监视和负载平衡。 内置了对Redis的支持,但是我们不能灵活地开箱即配置...
redis sentinel与redis cluster 集群配置
现在不少公司都用上了Redis,所以Redis高可用也显得尤其重要,现在Redis的高可用架构有比如keepalived+redis,rediscluster,twemproxy,codis,下面我们主要针对RedisSentinel高可用架构展开学习。RedisSentinel...
Redis Sentinel 主从部署 使用Python脚本获取Redis主从节点信息
redis-sentinel 基于 phpredis 扩展的 redis-sentinel 客户端
二、Sentinel的主从原理 之前介绍过为什么Jedis要用2.2.2及以上版本,因为主从实例地址(IP PORT)是不同的,当故障发生进行主从切换后,应
主要介绍了Redis Sentinel实现高可用配置的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Windos系统的Redis sentinel集群。 启动命令:D:\redis-2.8.18.rar\redis-2.8.18>redis-server.exe sentinel.conf --sentinel
Redis-sentinel是Redis的作者antirez,因为Redis集群的被各大公司使用,每个公司要写自己的集群管理工具,于是antirez花了几个星期写出了Redis-sentinel。 Redis 的 Sentinel 系统用于管理多个 Redis 服务器...