Redis-哨兵监控(sentinel)

news2024/11/16 3:27:17

是什么

Docs

吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务

作用:无人值守运维

能干嘛

1.主从监控

监控主从redis的库是否运行正常

2.消息通知

哨兵可以将故障转移的结果发送给客户端

3.故障转移

如果Master异常,则会进行主从切换将其中一个Slave作为新Master

4.配置中心

客户端通过连接哨兵来获得当前Redis服务的主节点地址

案例演示(实战步骤)

1.Redis sentinel架构,前提说明

2.案例步骤

1./myredis目录下新建或者拷贝sentinel.conf文件,名字绝不能错

把/opt/redis-版本号下的最原始的sentinel.conf文件拷贝进/myredis下

2.conf配置文件的重点参数说明

1.bind

服务监听地址,用于客户端连接,默认本机地址

2.daemonize

是否以后台daemon方式运行

3.protected-mode

安全保护模式

4.port

端口

5.logfile

日志文件路径

6.pidfile

pid文件路径

7.dir

工作目录

8.sentinel monitor <master-name> <ip> <redis-port> <quorum>

设置要监控的master服务器

quorum:表示最少有几个哨兵认可客观下线,同意故障迁移的法定票数

为什么用quorum:

我们知道,网络是不可靠的,有时候一个sentinel会因为网络堵塞而误以为一个master redis已经死掉了,在sentinel集群环境下需要多个sentinel互相沟通来确认某个master是否真的死了,quorum这个参数是进行客观下线的一个依据,意思是至少有quorum个sentinel认为这个master有故障,才会对这个master进行下线以及故障转移。因为有的时候,某个sentinel节点可能因为自身网络原因,导致无法连接master,而此时master并没有出现故障,所以,这就需要多个sentinel都一致认为该master有问题,才可以进行下一步操作,这就保证了公平性和高可用。

9.sentiel auth-pass <master-name> <password>

master设置了密码,连接master服务的密码

10.其他        

3.本次案例哨兵sentinel.conf的通用配置

由于机器硬件关系,我们的3个哨兵都同时配置进192.168.111.169同一台机器

在/myredis下配置:

sentinel26379:

4.先启动一主二从3个redis实例,测试正常的主从复制

1.架构说明

2.配置redis一主二从的conf文件

6379:(也要配置6379的masterauth,因为当6379从主机下位后成为从机,要连接新主机)

3.3台不同的虚拟机实例,启动三部真实机器实例并连接

5.启动三个哨兵,完成监控

6.启动三个哨兵后再测试一次主从复制

7.原有的master挂了

1.我们自己手动关闭6379服务器,模拟master挂了

2.问题思考

两台从机上的数据是否ok-->ok的,但是因为要内部选举,所以会error一段时间

是否会从剩下的两台从机上选出新的master-->会

之前down的主机重新启动回来,谁将是新老大,会不会双master冲突-->不会,通过日志,我们发现6379会彻底变成slave

查看sentinel26379.log文件

3.答案揭晓

数据是ok的,但是两个小问题,一种是连接断开,一种是broken pipe

8.对比配置文件

6379的配置文件;

结论:

sentinel会修改redis数据库的conf文件

3.其他备注

哨兵只是监控,没有业务压力

生产都是不同机房不同服务器,很少出现3个哨兵全挂掉的情况

哨兵可以同时监控多个master,一行一个

哨兵运行流程和选举原理

当一个主从配置中的master失效之后,sentinel可以选举出一个新的master用于自动接替原master的工作,主从配置中的其他redis服务器自动指向新的master同步数据。一般建议sentinel采取奇数台,防止某一台sentinel无法连接到master导致误切换

运行流程,故障切换

三个哨兵监控一主二从,正常运行中

主观下线SDown

SDOWN(主观不可用)是单个sentinel自己主观止检测到的关于master的状态,从sentinel的角度来看如果发送了PING心跳后,在一定时间内没有收到合法的回复,就达到了SDOWN的条件。

sentinel配置文件中的down-after-milliseconds设置了判断主观下线的时间长度

 ODown客观下线

ODOWN需要一定数量的sentinel,多个哨兵达成一致意见才能认为一个master客观上已经宕掉

quorum

选举出领导者哨兵(哨兵中选出兵王)leader

投票完以后,三个哨兵选出一个leader.由leader来执行接下来的更换master等操作

当主节点被判断客观下线以后,各个哨兵节点会进行协商先选举出一个领导者哨兵节点(兵王)并由该领导者节点也即被选举出的兵王进行failover(故障迁移)

看日志可以看到选取leader的过程

兵王如何选举出来的?Raft算法

判断主观下线的哨兵节点向其他哨兵节点发送master宕机,如果超过半数的哨兵节点判断master节点进入客观下线的状态,那么率先判断进入主观下线的哨兵将成为领头sentinel

由兵王开始推动故障切换流程并选举出一个新的master(新master选举的算法)

三步骤
新王登基

某个slave被选中成为新master

选出新master的规则(在slave节点健康的前提下):

群臣俯首

首先被选为新master的执行slaveof no one命令让自己从原来的从节点变为主节点,然后再通过slaveof 命令让其他节点成为从节点

旧主拜服

总结

上述的failover操作均由sentinel自己独自完成,完全无需人工干预

哨兵使用建议

并不能保证数据零丢失,引出集群

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应急响应-主机安全之系统及进程排查相关命令(Linux操作系统-初级篇)

目录 概述lscpu-显示有关CPU架构的信息uname-查看系统信息lsmod-输出加载的所有模块lastb-输出最后登录失败的用户last-展示用户最近登录信息lastlog-展示所有用户最后的登录时间systemctl-系统服务&#xff0c;开机自启排查crontab-计划任务选项 history-查看历史命令选项常用…

Python 画 等高线图

Python 画 等高线图 flyfish 通过三维图形与投影等高线相结合的方式&#xff0c;能够直观地看到三维函数的形状以及在平面上等值线的分布。 等高线是一种用来表示三维表面在二维平面上的方法。它们是通过在固定高度&#xff08;或深度&#xff09;处切割三维表面来创建的平面…

ArcGIS中如何再画一个已经存在的相同属性地类图斑

1.打开边界后&#xff0c;创建要素界面模板下面的内容是空的 2.此时点击组织模板 3.点击新建模板 4.勾选要添加的图层、下一步完成即可。 5.此时创建要素模板就有内容了 6.想要画哪个地类就先点哪个地类&#xff0c;再开始画图即可。 注意&#xff1a;画出来的图斑仅继承了匹配…

TOMCAT远程代码执行

首先下载一个apache-tomcat8.5.39 进入bin目录找到setclasspath.bat 进入文件进行编辑 修改为自己java所在的路径 在bin目录下打开cmd运行startup.bat 然后在文件管理器中搜索cgi-bin 然后在里面创建bat文件存在内容 然后在网页中打开

“奥运精神、数智传递”安通达AI智能外呼系列·企业沟通的金牌选择

北京时间7月27日凌晨&#xff0c;备受瞩目的第三十三届奥林匹克运动会在浪漫之都法国巴黎正式开幕。在全世界各国代表队奋力拼搏、激烈比赛的同时&#xff0c;一束来自中国的科技之光&#xff0c;照亮了推动人工智能发展的道路。 “你好&#xff0c;我是张雨霏/邹敬园&#xff…

PAT 乙级 1022题

题目&#xff1a;D进制的AB 输入两个非负 10 进制整数 A 和 B (≤230−1)&#xff0c;输出 AB 的 D (1<D≤10)进制数。 输入格式&#xff1a; 输入在一行中依次给出 3 个整数 A、B 和 D。 输出格式&#xff1a; 输出 AB 的 D 进制数。 输入样例&#xff1a; 123 456 …

vulnhub靶机tomato记录

https://www.vulnhub.com/entry/tomato-1,557/ 过程 用nmap对目标主机做全端口扫描&#xff0c;dirb做目录扫描&#xff0c;结果如下&#xff1a; 8888端口开放一个web服务&#xff0c;存在Basic认证&#xff0c;试了爆破无果&#xff0c;sun-answerbook是一个在线文档系统&am…

第25课 Scratch入门篇:火箭升空

火箭升空 故事背景&#xff1a; 在未来的世界里&#xff0c;发射火箭机器人来到火箭基地&#xff0c;火箭机器人开始倒计时&#xff0c;当倒计时结束后&#xff0c;火箭飞上天空&#xff01;火箭在天空中越飞越远&#xff0c;越来越小&#xff01;&#xff01;&#xff01; …

拼多多一面0518

nginx作为http服务器&#xff0c;用来反向代理哪些资源 Web应用资源&#xff1a; Nginx最常用来代理Web应用服务器&#xff08;如Apache、Tomcat、Node.js等&#xff09;上的资源。客户端发送的请求首先到达Nginx&#xff0c;Nginx根据配置将请求转发给后端的Web应用服务器处理…

实时人脸换脸——基于C++与Onnxruntime调用GPU实现实时换脸

1、概述 1. 1 算法概述 人脸换脸是一种使用人工智能技术来实时或离线地将视频中的人脸替换成另一张人脸的技术。近年来&#xff0c;随着深度学习技术的发展&#xff0c;这一领域取得了显著进展。常见的人脸换脸项目有&#xff1a; Deepfake&#xff1a;这是最著名的换脸算法之…

递归深度问题和尾调用的关系

当我们在编写计算阶乘的函数&#xff0c;一般我们都会会选择使用迭代或递归的方法来实现。下面就让我们看看&#xff0c;同一个函数的两种实现方法。首先&#xff0c;是使用迭代方式实现的函数&#xff0c;我们使用循环的方式来计算阶乘&#xff1a; // 阶乘函数&#xff0c;计…

京东健康·全球医疗AI创新大赛初赛圆满结束!

近日&#xff0c;京东健康全球医疗AI创新大赛的初赛已顺利落下帷幕。本次大赛由京东健康发起&#xff0c;旨在探索医疗行业前沿技术与创新应用&#xff0c;携手产学研各界力量&#xff0c;推动医疗服务行业的高质量发展。 大赛聚焦“睡眠监测智能算法”与“医疗大模型创新应用”…

零基础入门转录组数据分析——机器学习算法之boruta(训练模型)

零基础入门转录组数据分析——机器学习算法之boruta&#xff08;训练模型&#xff09; 目录 零基础入门转录组数据分析——机器学习算法之boruta&#xff08;训练模型&#xff09;1. boruta基础知识2. boruta&#xff08;Rstudio&#xff09;——代码实操2. 1 数据处理2. 2 构建…

临床预测模型概述6-统计模型实操-单/多因素Cox回归

基础知识回顾&#xff1a; https://mp.weixin.qq.com/s/pXRZ1rYUr3lwH5OlDeB0_Q https://mp.weixin.qq.com/s/UVR6ZHCwhWqTfFBmPYPV9Q 接下来我们进行cox回归模型的实际操练。 简单回顾一下cox回归&#xff0c;在各种临床/基础数据分析中&#xff0c;经常需要分析各种影响/…

学校考场电子钟设置自动开关机,节能环保

在标准化考试中&#xff0c;准确的时间显示对于确保考试的公正性和秩序至关重要。然而&#xff0c;传统的电子钟系统往往存在一些问题&#xff0c;影响了考试管理的效率。 一、学校普通电子钟使用问题 二、学校考场电子钟优点 学校同步时钟系统通过自动同步网络或卫星时间的方式…

排序算法3:归并排序与计数排序

前言 Hello&#xff0c;小伙伴们&#xff0c;今天我们继续排序算法的学习&#xff0c;大家三连上车不迷路&#xff0c;我们现在开始今天的学习&#xff01;&#xff01;&#xff01; 1.归并排序 1.1归并排序的算法思想 归并排序&#xff08;MERGE_SORT&#xff09;是建立在归…

洗地机什么牌子最好?洗地机排行榜前十名大总结

在追寻现代家庭清洁新境界的旅程中&#xff0c;洗地机凭借其卓越的清洁效率成为了焦点。以下是我基于深入的市场调研、个人亲身体验以及广泛收集的用户反馈&#xff0c;精心整理出的一份洗地机品牌排行榜及特色亮点解析。请注意&#xff0c;以下排名并不代表绝对的优劣顺序&…

会展中心定位导航:一站式展会解决方案,招商管理系统与展位精准指引的数字化

在当今数字化浪潮下&#xff0c;会展中心作为连接全球商贸与文化的桥梁&#xff0c;其运营效率与参展体验成为衡量成功与否的关键指标。随着物联网、大数据及AI技术的飞速发展&#xff0c;智能定位导航系统应运而生&#xff0c;为会展中心带来了前所未有的变革。会展中心定位导…

线下支付场景之反扫支付

很多老板都在后台私信小编&#xff0c;你们牛卡派这些支付功能确实不错&#xff0c;但只局限于线上网站的场景&#xff0c;可我们没有技术&#xff0c;只是线下来收收款&#xff0c;有没有这方面的产品&#xff1f; 当然有&#xff01;&#xff01;我们牛卡派不仅专注于线上的支…

取消Edge浏览器自带的JSON格式化插件

取消Edge浏览器自带的JSON格式化插件 Edge 浏览器自带了 JSON 转换功能&#xff0c;即某个请求响应的是 JSON格式的数据的话 Edge浏览器则会完成自动转换。如图所示&#xff1a; 这样一来如果自己想要安装其他美观的 JSON 格式化工具则会发现不生效。如JSON Formatter 工具。 …