Redis学习之哨兵二

一、API

        1.sentinel masters:展示被监控的主节点状态及相关的统计信息

        

                

                

        2.sentinel master <master name>:展示指定的主节点的状态以及相关的统计信息

        3.sentinel slaves <master name>:展示指定主节点的从节点状态以及相关的统计信息

        4.sentinel sentinels <master name>:展示指定主节点的sentinel节点集合

        5.sentinel get-master-addr-by-name<master name>:返回指定主节点的ip地址和端口

        6.sentinel reset<pattern>:对符合pattern的主节点的配置进行重置

        7.sentinel failover<master name>:对指定的主节点进行强制的故障转移,没有和其他sentinel节点进行协商,当故障转移完成后,其他sentinel节点按照故障转移的结果更新自身配置

        8.sentinel flushconfig:将sentinel节点的配置强制刷到磁盘上

        9.sentinel remove<master name>:取消当前sentinel节点对于指定的主节点进行监控

        10.sentinel  monitor <master name><ip><port><quorum>:向sentinel中添加对主节点的监控

        11.sentinel set<master name>:动态修改sentinel节点的配置项

        12.sentinel is-master-down-by-addr:sentinel节点之间用来交换对节点是否下线的判断,还可以根据参数的不同作为sentinel领导者的选举的通信方式

二、客户端连接

        1.实现redis sentinel客户端的步骤:

                Ⅰ、遍历sentinel节点集合获取一个可用的sentinel节点

                Ⅱ、通过sentinel get-master-addr-by-name master-name 获取对应的主节点的信息

                Ⅲ、验证当前获取的主节点是真正的主节点,防止故障转移期间主节点的变化

                Ⅳ、保持和sentinel节点集合的联系,时刻获取关于主节点的相关信息

        2.java操作redis sentinel

                jedis需要有master-name和sentinel两个参数来连接redis sentinel

                

三、redis sentinel实现原理

        1.其基本实现原理包含:三个定时任务、主观下线和客观下线、sentinel领导者选举以及故障转移。

        2.三个定时任务

                Ⅰ、每隔10s,每个sentinel节点会向主节点和从节点发送info命令获取最新的拓扑

                

                这个定时任务的作用表现

                        通过向主节点执行info命令获取从节点的信息,这个好处是sentinel节点不需要显示配置监控从节点

                        当有新的从节点加入时可以立刻感知出来

                        节点不可达或者故障转移后可以通过info命令实时更新节点拓扑信息

               Ⅱ、每隔2s,每个sentinel节点会向redis数据节点发送该sentinel节点对于主节点的判断以及当前sentinel节点的信息同时其他sentinel节点也可以得知它们对于主节点的判断

                Ⅲ、每隔1s,每个sentinel节点会向主节点、从节点、其余sentinel节点发送一条ping命令做一次心跳检测来确定这些节点是否可达

        3.主观下线和客观下线

                主观下线:每个sentinel节点会隔1s对其他节点做心跳检测,当这些节点超过down-after-milliseconds没有进行有效的回复,sentinel节点会对该节点做失败判定,这个行为是主观下线,这个行为存在误判的可能。

                客观下线:当sentinel主观下线 的节点是主节点,该sentinel节点会通过sentinel is-master-down-by-addr命令向其他sentinel节点询问对主节点的判断,当超过<quorum>个数就认为主节点有问题,则这个sentinel就会做出客观下线的决定

        4.领导者sentinel节点选举

                领导者sentinel选取的意义:进行故障转移

                领导者选举的思路

                       Ⅰ、首先每个在线的sentinel节点都有资格都有资格成为领导者,当其确认主节点主观下线时会向其他sentinel节点发送sentinel is-master-down-by-addr命令要求将自己设置为领导者                   

 

                       Ⅱ、收到命令的sentinel节点如果没有同意其他sentinel节点的命令将会同意这个请求否则是拒绝

                        Ⅲ、如果该sentinel节点发现自己的票数已经大于max(quorum,num(sentinel)/2+1),那么就会成为领导者

                        Ⅳ、如果这个过程没有选举出领导者将会进入下一次选举

         5.故障转移

                在节点列表中选出一个节点作为新的主节点

                       Ⅰ、过滤掉不健康(主观下线)、5s内没有回复ping命令

                        Ⅱ、选择slave-priority(从节点优先级)最高的从节点列表,如果存在则返回

                        Ⅲ、选择复制偏移量最大的从节点,如果存在则返回’

                        Ⅳ、选择runid最小的从节点

                对上一步选出来的从节点执行slaveof no one命令让其成为主节点

                sentinel领导者向剩余的从节点发送命令,让它们成为新主节点的从节点

                sentinel集合将原来的住系欸但更新为从节点并保持对旧的主节点的关注,当旧的主节点恢复时命令它去复制新的主节点的信息。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/9765.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iperf 测 TCP 和 UDP 网络吞吐量

注&#xff1a;本文为 “iperf 测网络吞吐量” 相关文章合辑。 未整理去重。 使用 iperf3 监测网络吞吐量 Tom 王 2019-12-21 22:23:52 一 iperf3 介绍 (1.1) iperf3 是一个网络带宽测试工具&#xff0c;iperf3 可以擦拭 TCP 和 UDP 带宽质量。iperf3 可以测量最大 TCP 带宽…

Kafka 副本机制(包含AR、ISR、OSR、HW 和 LEO 介绍)

文章目录 Kafka 副本机制&#xff08;包含AR、ISR、OSR、HW 和 LEO 介绍&#xff09;1. 副本的基本概念2. 副本同步和一致性2.1 AR&#xff08;Assigned Replicas&#xff09;2.2 ISR&#xff08;In-Sync Replicas&#xff09;2.3 OSR&#xff08;Out-of-Sync Replicas&#xf…

java求职学习day18

常用的设计原则和设计模式 1 常用的设计原则&#xff08;记住&#xff09; 1.1 软件开发的流程 需求分析文档、概要设计文档、详细设计文档、编码和测试、安装和调试、维护和升级 1.2 常用的设计原则 &#xff08;1&#xff09;开闭原则&#xff08;Open Close Principle…

github制作静态网页

打开gihub并新建仓库 命名仓库&#xff1a;xxx.github.io 点击create repository进行创建 点击蓝色字体“creating a new file”创建文件 文件命名为index.html, 并编写html 右上角提交 找到setttings/pages&#xff0c;修改路径&#xff0c;点击保存&#xff0c;等…

shell脚本

Shell内容讲解 一、Shell 脚本基础概念 什么是 Shell 脚本&#xff1f; Shell 脚本是一个包含一系列 Shell 命令的文本文件&#xff0c;用于自动化执行任务&#xff08;如文件操作、程序调用、系统管理等&#xff09;。 Shell 类型 bash&#xff08;Bourne-Again Shell&#…

python:斐索实验(Fizeau experiment)

斐索实验&#xff08;Fizeau experiment&#xff09;是在1851年由法国物理学家阿曼德斐索&#xff08;Armand Fizeau&#xff09;进行的一项重要实验&#xff0c;旨在测量光在移动介质中的传播速度。这项实验的结果对当时的物理理论产生了深远的影响&#xff0c;并且在后来的相…

16.Word:石油化工设备技术❗【28】

目录 题目 NO1.2 NO3 NO4 题目 NO1.2 F12&#xff1a;另存为将“Word素材.docx”文件另存为“Word. docx”&#xff08;“docx”为文件扩展名&#xff09; 光标来到表格上方→插入→形状→新建画布→单击选中→格式→高度/宽度&#xff08;格式→大小对话框→取消勾选✔锁定…

计算机毕业设计Python+CNN卷积神经网络高考推荐系统 高考分数线预测 高考爬虫 协同过滤推荐算法 Vue.js Django Hadoop 大数据毕设

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

DeepSeek-R1本地部署笔记

文章目录 效果概要下载 ollama终端下载模型【可选】浏览器插件 UIQ: 内存占用高&#xff0c;显存占用不高&#xff0c;正常吗 效果 我的配置如下 E5 2666 V3 AMD 590Gme 可以说是慢的一批了&#xff0c;内存和显卡都太垃圾了&#xff0c;回去用我的新设备再试试 概要 安装…

zyNo.19

哈希&#xff08;md5&#xff09;绕过问题 本质上是弱类型问题的延申 题型 登录的哈希验证 $a ! $b Md5($a) md5($b) 解决办法Md5绕过 var_dump ("0e123456" "0e4456789"); //true 0e545993274517709034328855841020//true 参考资料0e开头的哈希…

爬虫基础(一)HTTP协议 :请求与响应

前言 爬虫需要基础知识&#xff0c;HTTP协议只是个开始&#xff0c;除此之外还有很多&#xff0c;我们慢慢来记录。 今天的HTTP协议&#xff0c;会有助于我们更好的了解网络。 一、什么是HTTP协议 &#xff08;1&#xff09;定义 HTTP&#xff08;超文本传输协议&#xff…

XCTF - IllIntentions wp

做 ctf 每天都是踩坑的一天 文章目录 题目概述我的做法frida hook 题目概述 这道题本身逻辑不复杂&#xff0c;有一个 MainActivity 和三个二级 Activity IsThisTheRealOne, ThisIsTheRealOne, DefinitelyNotThis。主 activity 是空白页面&#xff0c;注册了一个 Receiver Sen…

LNMP架构

一、概述 LNMP架构是一种常用于搭建动态网站的服务器架构组合&#xff0c;其名称由以下四个组件的首字母缩写组成&#xff1a; Linux&#xff1a;操作系统。Linux具有开源、稳定、安全、高性能等特点&#xff0c;是服务器领域广泛使用的操作系统。它为其他组件提供了运行环境和…

【Unity3D】实现2D角色/怪物死亡消散粒子效果

核心&#xff1a;这是一个Unity粒子系统自带的一种功能&#xff0c;可将粒子生成控制在一个Texture图片网格范围内&#xff0c;并且粒子颜色会自动采样图片的像素点颜色&#xff0c;之后则是粒子编辑出消散效果。 Particle System1物体&#xff08;爆发式随机速度扩散10000个粒…

芯片AI深度实战:基础篇之langchain

基于ollama, langchain,可以构建一个自己的知识库&#xff0c;比如这个 Build Your Own RAG App: A Step-by-Step Guide to Setup LLM locally using Ollama, Python, and ChromaDB | HackerNoon 这是因为&#xff1a; 以上范例就实现了这样一个流程&#xff1a; 系列文章&…

mybatis(134/134)完结

一级缓存&#xff08;默认情况下开启&#xff09;同一个sqlsession中执行相同的查询语句走一级缓存 二级缓存 &#xff1a;同一个sqlsessionfactory&#xff0c;sqlsession关闭了才会将一级缓存提交到二级缓存中 外部编写的缓存 PageHelper插件&#xff1a;方便进行分页&#x…

C++,STL 简介:历史、组成、优势

文章目录 引言一、STL 的历史STL 的核心组成三、STL 的核心优势四、结语进一步学习资源&#xff1a; 引言 C 是一门强大且灵活的编程语言&#xff0c;但其真正的魅力之一在于其标准库——尤其是标准模板库&#xff08;Standard Template Library, STL&#xff09;。STL 提供了…

不背单词快捷键(不背单词键盘快捷键)

文章目录 不背单词快捷键 不背单词快捷键 ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ    …

EasyExcel写入和读取多个sheet

最近在工作中&#xff0c;作者频频接触到Excel处理&#xff0c;因此也对EasyExcel进行了一定的研究和学习&#xff0c;也曾困扰过如何处理多个sheet&#xff0c;因此此处分享给大家&#xff0c;希望能有所帮助 目录 1.依赖 2. Excel类 3.处理Excel读取和写入多个sheet 4. 执…

JavaScript函数中this的指向

总结&#xff1a;谁调用我&#xff0c;我就指向谁&#xff08;es6箭头函数不算&#xff09; 一、ES6之前 每一个函数内部都有一个关键字是 this &#xff0c;可以直接使用 重点&#xff1a; 函数内部的 this 只和函数的调用方式有关系&#xff0c;和函数的定义方式没有关系 …