Redis Sentinel详解

redis的Sentinel系统主要用于管理多个Redis服务器,是Redis Server的一个特殊工作模式,该系统执行以下三个任务:

监控:  sentinel会不断监控Redis的主服务器和从服务器运作是否正常。当某个Redis服务器出现问题时,sentinel会通过API向应用程序或管理员发送通知

自动故障迁移(automatic failover): 当一个主服务器出现问题时,sentinel会发起一次自动故障迁移动作,它会将失效的主服务器的一个从服务器升级为新的主服务器,并让失效主服务器的其他从服务器成为新的主服务器的从服务器。通过sentinel集群可以查询到新的主服务器的地址

Redis Sentinel是一个分布式系统,你可以在一个架构中运行多个sentinel,这些进程使用gossip 协议来接受主服务器是否下线的信息。并且使用投票协议来决定是否执行自动故障迁移,以及选择哪个从服务器成为新的主服务器。

启动Redis Sentinel

之前说过,Redis Sentinel是一个运行在特殊模式下的redis server。因此,可以用redis-server来启动sentinel:

redis-server  /path/to/sentinel.conf  --sentinel

启动sentinel实例必须指定响应的配置文件,或者指定的配置文件不可写,那么sentinel会拒绝启动。

配置sentinel

启动一个sentinel需要的最小配置如下:

sentinel monitor mymaster 127.0.0.1 6379 2

表示去监视一个名为mymaster的主服务器,这个主服务器的ip地址和端口,最后一个是将主服务器判断为失效至少需要一个sentinel同意。只要同意sentinel的数量不达标,自动故障迁移就不会执行

sentinel down-after-milliseconds  mymaster 60000

sentinel认为服务器已经断线所需的毫秒数

sentinel failover-timeout mymaster 180000

sentinel执行一次failover的超时时间

sentinel parallel-syncs mymaster 1

指定了在故障转移时,最多可以有多少个从服务器同时对新的主服务器进行同步。这个数字越小,完成故障转移所需的时间就越长。

主观下线和客观下线

redis sentinel关于下线有两个不同的概念:

主观下线:指的是单个sentinel实例对服务器做出的下线判断

如果一个服务器没有在down-after-milliseconds选项指定的时间内,对向它发送ping命令的sentinel返回一个有效回复,那么sentinel则认定这台服务器主观下线

客观下线:指的是多个sentinel实例在对同一个master做出主观下线判断,并且通过sentinel is-master-down-by-addr命令互相交流后,得出的服务器下线判断。

sentinel通过流言协议来判断master是否客观下线,一旦sentinel获得足够数量的服务器主观下线,那么它将认定服务器客观下线。客观下线只适用于master。

Sentinel定时执行的任务

1.每个sentinel以每秒一次的频率向它所知的主服务器,从服务器以及其他sentinel实例发送一个ping命令

2.如果一个master超时未响应,会被标记为主观下线

3.如果master被标记为主观下线,那么正在监视这个master的所有sentinel都要以每秒一次的频率确认主服务器的确进入了主观下线状态

4.判断主服务器是否进入了客观下线

5.当没有足够的sentinel同意master主观下线,master的客观下线状态会被移除

6.自动发现sentinel和从服务器

Sentinel命令

sentinel的端口是26379,可以通过redis-cli连接sentinel,sentinel支持以下命令:

1.ping 返回pong

2.sentinel masters 列出所有被监视的主服务器

3.sentinel slaves 列出给定主服务器的所有从服务器,以及这些从服务器的当前状态

4.sentinel get-master-addr-by-name 返回给定名字的主服务器的ip和端口号

5.sentinel reset 重置所有名字和给定模式pattern相匹配的主服务器

6.sentinel failover 在master失效的情况下,强制一次开始自动故障迁移

故障转移

一次故障转移操作由一下步骤组成:

1.发现主服务器已经进入客观下线状态

2.对当前epoch进行自增,并尝试在这个epoch当选为主

3.如果当选失败,在设定的故障迁移超时时间的两倍之后,重新尝试当选。如果当选成功,执行以下步骤:

    a 选出一个从服务器,并将它升级为master(发slave of no one)

    b  通过发布和订阅功能,将更新后的配置传给其他的sentinel

    c 向其他从服务器发送slaveof命令,让他们去复制新的master

    d 当所有从服务器都已近开始复制新的主服务器时,leader sentinel终止这次故障迁移操作

sentinel使用如下规则选择新的master:

1.选择复制偏移量最大的从服务器成为新的主服务器,如果复制偏移量不可用或者相同,则选择id最小的那个从服务器成为新的主服务器。

sentinel使用Raft算法来选举leader,执行故障迁移。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341

推荐阅读更多精彩内容

  • 来到学校后,一改往常,瑾言没有以前活泼了,坐在座位上,看着楼下的学弟,难道我真的要离开他了吗…… 低下头,头发顺着...
    千愁殇i阅读 217评论 1 0
  • 14年去阳朔去旅行时,头天下午租了辆单车骑行十里画廊,溜达到快天黑时,寒风乍起,天空中还飘起了小雨,就准备返回...
    思贤妈妈阅读 721评论 1 2
  • 有时风平,有时浪静 跌浮是人生的曲线 在你的本命年 心安即是最大的态度 何必看不惯 何必想的长远 人最怕的就是到不...
    纵酌小青年阅读 244评论 4 3
  • 暗疮可以吃药,暗恋却像山洪暴发,任何一种抗生素也拯救不了,努力去忘记暗恋的对象,就好比用手去挤暗疮,痛楚而徒劳。 ...
    我们的遇见阅读 709评论 4 11