当前位置: 首页 > news >正文

redis 笔记2之哨兵

文章目录

  • 一、哨兵
    • 1.1 简介
    • 1.2 实操
      • 1.2.1 sentinel.conf
      • 1.2.2 问题
      • 1.2.3 哨兵执行流程和选举原理
      • 1.2.4 使用建议


一、哨兵

1.1 简介

上篇说了复制,有个缺点就是主机宕机之后,从机只会原地待命,并不能升级为主机,这就不能保证对外服务了,所以出现了哨兵,来监控主机和从机的状态。
在这里插入图片描述

1.2 实操

前提说明:
在这里插入图片描述

1.2.1 sentinel.conf

参数:
在这里插入图片描述
重点:在这里插入图片描述
其他:
在这里插入图片描述

客观下线
在这里插入图片描述在这里插入图片描述
其中一台哨兵的重要配置参数编写在这里插入图片描述

哨兵会监控主机和其他从机以及其他主机,我们只配置了主机ip和端口,但是会通过内容传递获得主机下的从机以及监控此主机的其他哨兵。在这里插入图片描述

添加了哨兵之后,主机上的redis.conf也要配置密码masterauth,防止主机宕机,变成从机之后,也需要去拜新的主机。
在这里插入图片描述

1.2.2 问题

在这里插入图片描述
主机宕机,哨兵会从从机中投票选举出新的主机,并且两台从机的数据依然存在。
如果之前宕机的主机重启回来,被选举出来的master不会变,而老的master会变成slave。

由于我们切换了主机,所以对应的文件内容也要进行更改。
在这里插入图片描述
比如哨兵,它监控的主机名ip端口就会发生变化。
在这里插入图片描述
原来的主机重启之后 由于变成了从机 所以需要隶属关系,哨兵自动帮我们加入。
在这里插入图片描述

而重新变成master的从机,由于不在依附别的机器,所以原来的replicaof 自动被消除了。
在这里插入图片描述

1.2.3 哨兵执行流程和选举原理

在这里插入图片描述
主观下线:
哨兵的配置文件中有默认时间,如果在规定时间内,主机没有回应,当前哨兵就会判断该主机宕机了。
客观下线:
但是,一个哨兵判断主机宕机并不可靠,因为可能网络会有延迟,所以需要所有哨兵来投票,就是我们上述配置文件中的参数,当超过该参数为就确定该主机确实宕机了。
选举出领导者哨兵
哨兵有多个,如果每个哨兵都有话语权去选举新的主机,就会造成混乱,所以需要先找出一个兵王。由该兵王来进行选举和后续故障迁移操作(比如给新的主机发送信息,以及给其他从机发送需要依附于新的主机命令)。
在这里插入图片描述
在这里插入图片描述

兵王选举出一个新的master并进行后续故障迁移
在这里插入图片描述

选举规则
在这里插入图片描述

在这里插入图片描述
先看配置文件中的参数,数值越小,优先级越高,然后看谁复制原来主机的数据多,最后看谁的id小。
在这里插入图片描述
在这里插入图片描述

1.2.4 使用建议

哨兵+主从复制并不能达到数据零丢失。
在这里插入图片描述

相关文章:

  • 太速科技-FMC213V3-基于FMC兼容1.8V IO的Full Camera Link 输入子卡
  • 实施细则!2024年四川省科学技术奖励办法申报条件、要求、对象及材料整理
  • 揭秘创业加盟:豫腾助力,发掘商机,共赢未来
  • HarmoneyOS星河版 安装和启动
  • 单片机建立自己的库文件(4)
  • 构建实时搜索与推荐系统:Elasticsearch与业务结合
  • flutter开发实战-RichText富文本居中对齐
  • 苍穹外卖笔记-18-修改密码、bug记录
  • ncnn 和 rknn 自定义算子对比实现
  • 【elementui源码解析】如何实现自动渲染md文档-第二篇
  • 【Linux文件篇】磁盘到用户空间:Linux文件系统架构全景
  • 经验分享,xps格式转成pdf格式
  • OpenGL3.3_C++_Windows(11)
  • HTML DOM 对象
  • 设计灵感源泉!7个令人赞叹的网页界面设计展示
  • 【css3】浏览器内核及其兼容性
  • GraphQL学习过程应该是这样的
  • Laravel5.4 Queues队列学习
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • leetcode46 Permutation 排列组合
  • nodejs:开发并发布一个nodejs包
  • PaddlePaddle-GitHub的正确打开姿势
  • php的插入排序,通过双层for循环
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Spring Boot MyBatis配置多种数据库
  • SQLServer之索引简介
  • 番外篇1:在Windows环境下安装JDK
  • 回顾 Swift 多平台移植进度 #2
  • 目录与文件属性:编写ls
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 区块链共识机制优缺点对比都是什么
  • 详解NodeJs流之一
  • 项目管理碎碎念系列之一:干系人管理
  • 一天一个设计模式之JS实现——适配器模式
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #NOIP 2014# day.2 T2 寻找道路
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (void) (_x == _y)的作用
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (六)c52学习之旅-独立按键
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (算法设计与分析)第一章算法概述-习题
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)基于IDEA的JAVA基础12
  • ..回顾17,展望18
  • .Net core 6.0 升8.0
  • .NET gRPC 和RESTful简单对比
  • .NET 命令行参数包含应用程序路径吗?
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。