码迷,mamicode.com
首页 > 其他好文 > 详细

Redis Sentinel知识点

时间:2018-03-27 16:41:37      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:serve   移除   监视   检查   地址   获取   tomat   raft   协议   

Redis Sentinel:分布式系统,多个Sentinal进程之间通过gossip protocols来接收主服务器是否下线的信息,通过agreement protocols来决定故障转移及转移服务器。
 
监控(monitoring):PING消息检查主从服务器运行状态
 
通知(notification):通知问题服务器信息
 
故障迁移(automatic failover):提升失效主服务器的从服务器为新的主服务器,其它从属服务器从新的主服务器复制信息,集群向客户端返回新的主服务器地址,
 
 
启动命令:redis-server /path/to/sentinel.conf --sentinel
 
配置文件:
sentinel monitor mymaster 127.0.0.1 6379 2  //主服务器名称 ip port 判定失效投票数
sentinel down-after-milliseconds mymaster 60000  //sentinel判定服务器失效所需的毫秒数
sentinel failover-timeout mymaster 180000  //故障转移时限
sentinel parallel-syncs mymaster 1  //故障转移时,最多可以有多少个从服务器对新的主服务器请求同步 同一时间只让一个从服务器置于不可用状态
 
自动发现Sentinel和从服务器
 
 
监视相同主机的sentinel实例,通过订阅发布功能实现相互发现。频道: sentinel:hello
 
sentinel实例通过询问主服务来获取其下从属服务器信息
 
sentinel 发送本实例 ip、port、runid 到监视的主从服务器频道 sentinel:hello
|                                                                                                                                     |
sentinel 从订阅的 主从服务器 sentinel:hello 频道 获取监视的sentinel信息                     从订阅的 主从服务器 sentinel:hello 频道获取监视的sentinel主发送的服务器配置信息
|                                                                                                                                     |
自动添加新的sentinel实例到配置列表(所有监视同一主服务器的所有sentinel实例列表) 将主服务器配置信息更新到最新的配置
(相同runid或者相同ip:port的列表条目会被移除,然后添加新的条
 
主观下线(SDOWN):单个sentinel判定服务器下线
 
客观下线(ODOWN):多个sentinel判定服务器SDOWN,并通过SENTINEL is-master-down-by-addr命令相互交互后,得出服务器下线判断。只适用于主服务器
 
sentinel PING消息;服务器回复 +PONG -LOADING -MASTERDOWN
 
服务器在master-down-after-milliseconds内连续回复无效信息 认定主观下线
 
发现主服务器客观下线的sentinel进行故障迁移操作
 
sentinel 实例 只提供了订阅功能的redis服务器,订阅相应的频道获取监控服务器的相关信息。
 
Raft协议领导者选举。
 
故障转移:
 
主服务器客观下线
|
sentinel epoch自增,试图当选执行故障转移
|
Raft协议选择一个从属服务器为新的主服务器
|
发送SLAVEOF NO ONE 使其转变为主服务器
|
通过订阅发布向其它sentinel发送最新的主服务器配置信息。
|
向原来的从服务器发送SLAVEOF命令,使他们向心的主服务器请求信息复制同步
|
当所有从服务器想新的主服务器请求数据复制同步事,sentinel终止故障转移
 
 
Redis Sentinel严重依赖系统时间,例配置
 
lua脚本执行超时,redis返回-BUSY状态,Sentinel会在故障转移前杀死脚本。
 
 

Redis Sentinel知识点

标签:serve   移除   监视   检查   地址   获取   tomat   raft   协议   

原文地址:https://www.cnblogs.com/niejunlei/p/8657615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!