第9章 哨兵

Redis Sentinel 哨兵架构是高可用方案。

1. 基本概念

1.1 主从复制问题

主从复制模式的作用:

  1. 从节点作为后备,保证数据尽量不丢失
  2. 从节点扩展主节点的读能力

问题:

  1. 一旦主节点故障,需要手动将一个从节点晋升
  2. 主节点写能力受到单机限制
  3. 主节点存储能力受到单机限制

1.2 高可用

故障转移过程

  1. 主节点故障,复制中断
  2. 选出一个从节点,slaveof no one使其成为新的主节点
  3. 更新应用方的主节点信息,重新启动应用方
  4. 命令另一个从节点复制新的主节点
  5. 待原来的主节点恢复后,去复制新的主节点

1.3 Redis Sentinel的高可用性

Redis Sentinel能自动完成故障发现和故障转移,包含若干个Sentinel节点和Redis数据节点。每个Sentinel节点会对数据节点和其余Sentinel节点进行监控。

故障转移步骤:

  1. 主节点故障,主从复制失败
  2. 每个Sentinel节点通过定期监控发现主节点出现了故障
  3. 多个Sentinel节点对主节点的故障达成一致,选出某个sentinel节点作为领导者负责故障转移
  4. Sentinel领导者节点执行了故障转移

2. 安装和部署

3. API

4. 客户端连接

5. 实现原理

5.1 三个定时监控任务

一套合理的监控机制是Sentinel节点判定节点不可达的重要保证

  1. 每个10秒,每个Sentinel节点会向主节点和从节点发送info命令获取最新拓扑
  2. 每个2秒,每个Sentinel节点会向Redis数据节点的sentinel:hello频道发送对主节点的判断以及当前Sentinel节点信息
  3. 每个1秒,每个Sentinel节点会向主节点,从节点,其余Sentinel节点发送一条ping命令做一次心跳检测

5.2 主观下线和客观下线

  1. ping命令后节点没有回复,sentinel节点对该节点做失败判定
  2. 客观下线,当Sentinel主观下线的节点是主节点时,向其他Sentinel节点询问,超过<quorum>个数即为客观下线

5.3 领导者Sentinel节点选举

实际的故障转移工作只由一个Sentinel节点完成,所以要选一个领导者。通过Raft算法实现选举

选出最好的从节点.jpg

6 开发与运维中的问题

6.1 故障转移日志分析

6.2 节点运维

6.3 高可用读写分离

要点:实时掌握所有从节点状态,把所有从节点看做一个资源池


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

推荐阅读更多精彩内容

  • 单机/单点 单点故障/瓶颈:多个节点负载:面向数据:一变多(一致性<弱一致,最终一致性>)》可用性最终一致性:一部...
    壹点零阅读 793评论 0 3
  • 复制 复制功能是让一台Redis服务器复制另一台服务器,也就是Master-Slave模式,通常用于实现读写分离。...
    宇宙最强架构师阅读 692评论 0 3
  • 前言 Redis是一个高性能的key-value数据库,现时越来越多企业与应用使用Redis作为缓存服务器。楼主是...
    liangzzz阅读 4,264评论 9 152
  • Redis Sentinel 介绍与部署 1. Sentinel介绍 1.1 主从复制的问题 Redis主从复制可...
    ggr阅读 204评论 0 1
  • 进入标志 'use strict'老版本会当做一串普通字符 如何调用 写在首行,整个文件进入严格模式 放在函数体第...
    大城主阅读 932评论 0 0