首页 > 数据库 >Redis:六、哨兵模式

Redis:六、哨兵模式

时间:2023-02-24 21:36:25浏览次数:43  
标签:slave TestMaster Redis 模式 哨兵 down master sentinel

@

目录


一、哨兵模式简介

哨兵(Sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制来选举出新的master并将所有的slave连接到新的master。
哨兵也是一台redis服务器,只不过不提供数据服务。
哨兵通常配置为单数。
在这里插入图片描述

二、哨兵的搭建

在这里插入图片描述

  • sentinel.conf 配置文件解读
# Example sentinel.conf

# port <sentinel-port>
port 8001

# 守护进程模式
daemonize yes

# 指明日志文件名
logfile "./sentinel1.log"

# 工作路径,sentinel一般指定/tmp比较简单
dir ./

# 哨兵监控这个master,在至少quorum个哨兵实例都认为master down后把master标记为odown
# (objective down客观down;相对应的存在sdown,subjective down,主观down)状态。
# slaves是自动发现,所以你没必要明确指定slaves。
# 通常哨兵数量设置为单数,quorum = 哨兵数量/2 +1
sentinel monitor MyMaster 127.0.0.1 7001 1

# master或slave连接多长时间(默认30秒)不能使用后标记为s_down状态。
sentinel down-after-milliseconds MyMaster 1500

# 新master上任后数据同步时一次有多少数据同步,数值越小服务器压力越小但速度越慢
sentinel parallel-syncs mymaster 1  

# 若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout TestMaster 10000

# 设置master和slaves验证密码
sentinel auth-pass TestMaster testmaster123

sentinel config-epoch TestMaster 15
#除了当前哨兵, 还有哪些在监控这个master的哨兵
sentinel known-sentinel TestMaster 127.0.0.1 8002 0aca3a57038e2907c8a07be2b3c0d15171e44da5
sentinel known-sentinel TestMaster 127.0.0.1 8003 ac1ef015411583d4b9f3d81cee830060b2f29862
  • 实例搭建
    在这里插入图片描述
    在这里插入图片描述
    显示 6379作为master,它下面还有2个slave,同时有3个哨兵监视着。
    在这里插入图片描述

三、哨兵工作原理

1. 阶段(1)监控阶段:
在这里插入图片描述
sentinel 会向master要状态信息、向slave要状态信息、向其它sentinel要状态信息。

2. 阶段(2)通知阶段:
在这里插入图片描述
sentinel1 会不断向master、slave发送指令来判断连接是否正常,并且将接受到的信息分享给其余sentinel。

3. 阶段(3)故障转移阶段:
在这里插入图片描述

  1. sentinel1 会不断发送请求给master,如果在指定时间内接收不到响应则认为master已经下线,并且将master标记为 flags:SRI_S_DOWN (主观下线)。随后sentinel1 会将这一消息分享给其余sentinel,其余sentinel也会不断发送消息给master进行连接测试,如果有半数以上的sentinel都认为master已经下线,则master的状态会被标记为 flags:SRI_O_DOWN (客观下线)。

  2. 找到需要剔除的master 主机后,接下来需要从众多 sentinel 中选举出一个代表 sentinel 去实行剔除工作。
    在这里插入图片描述

  3. 最后就是执行剔除工作并且选举出新的master。会根据以下要求进行选举。
    在这里插入图片描述
    哨兵工作原理:
    在这里插入图片描述
    在这里插入图片描述

标签:slave,TestMaster,Redis,模式,哨兵,down,master,sentinel
From: https://www.cnblogs.com/istitches/p/17153148.html

相关文章

  • Redis:七、集群
    @目录一、集群是什么?二、集群的存储结构设计三、集群的搭建四、主从下线和主从切换总结一、集群是什么?集群:集群就是使用网络将若干台计算机联通起来,并提供统一的管理方......
  • Redis:三、持久化操作
    Redis系列文章目录@目录Redis系列文章目录一、Redis配置文件解析INCLUDES包含GENERAL通用SECURITYLIMITS限制二、Redis持久化---RDB方式2.1RDB(RedisDataBase):2.2......
  • Redis:二、jedis线程池
    中间件---Redis@目录中间件---Redis前言一、什么是jedis二、使用步骤1.Jedis读写redis数据(案例)2.编码2.1设定业务方法:2.2设定线程类,模拟用户调用:2.3设计redis......
  • Redis设计与实现—对象
    前言 前面介绍了Redis底层的数据类型,但是Redis常用的五种数据结构是怎样的呢?@目录前言一、对象类型介绍1.1概念1.2对象类型和编码1)type:类型2)encoding:编码和底层实现......
  • Redis设计与实现—复制原理
    前言Redis中的复制命令原理@目录前言一、旧版复制原理1.1同步1.2命令传播1.3旧版复制的缺陷二、新版复制原理2.1部分重同步2.1.1复制偏移量2.1.2复制积压缓冲区2......
  • Redis设计与实现—简单动态字符串、链表、字典
    前言《Redis设计与实现》数据结构部分有关字符串类型介绍。@目录前言一、数据结构——简单动态字符串1.1SDS定义1.2SDS与C字符串的区别1.2.1常数复杂度获取字符串长度......
  • Redis设计与实现—事件机制
    前言Redis内部消息通信机制学习和了解@目录前言一、Redis中事件的分类文件事件文件事件处理器I/O多路复用程序的实现文件事件处理器时间事件时间事件怎么处理关键的时......
  • Redis设计与实现—数据库与过期键策略
    前言深入了解一下Redis内存机制如何存储数据,以及对于过期数据采取何种策略来清理。@目录前言一、Redis服务器中的数据库二、数据库键空间2.1数据存储——键空间dict2.......
  • Redis设计与实现—跳跃表、压缩列表
    前言Redis设计与实现读书笔记,基础数据结构部分——跳跃表与压缩列表@目录前言一、跳跃表1.1跳跃表概念1.2Redis中跳跃表的实现1.3跳跃表节点(zskipListNode)1.4手动......
  • redis(4)String字符串
    前言Redis中有5大数据类型,分别是字符串String、列表List、集合Set、哈希Hash、有序集合Zset,本篇介绍Redis的字符串String Redis字符串String是Redis最基本的类型,你可......