逻辑门 集成电路 运算器 内存 处理器 寄存器
主页 正文

Redis哨兵模式:哨兵故障下的主从库切换解析

每天一个知识点:哨兵挂了,Redis 主从库还能切换吗?

有可能简单地得出结论。
实际上,再次形成了哨兵群集,即使哨兵实例失败和块,其他哨兵也可以继续协作以完成主奴隶数据库的段落,确定主数据库是否离线并选择新的主人。
图书馆以及奴隶和通知客户。
那为什么呢? 这需要了解前哨工作的基本原理。
当我们配置Sentinel信息时,我们只需要设置主库的IP和门,而不会配置其他前哨的连接信息,因为前哨无需从前哨那里了解更多信息。
那么,你怎么发现彼此? 这要归功于Redis提供的酒吧/子机制或出版/订阅机制。
实际上,只要前哨与主库建立了联系,它可以在主库上发布消息,例如发布其连接信息(IP和门)。
同时,它还可以注册主要数据库消息,并获得其他哨兵发布的连接信息。
当多个实例发布并签署了主要数据库时,他们将了解他人的IP地址和门。
除了哨兵实例外,我们编写的应用程序还可以通过REDIS发布和签名消息。
因此,为了将消息与不同的应用程序区分开,Redis将以渠道形式以不同类别的方式管理这些消息。
SO称为频道实际上是消息类别。
当消息类别相同时,它们属于同一频道。
否则它属于另一个渠道。
只有在同一渠道上注册的应用程序才能通过已发布的消息交换信息。
除了建立它们之间的连接以形成群集外,前哨还必须与斯拉夫库建立连接。
这是因为,在监视活动中,前哨必须对主人和斯拉夫书店进行心跳判断,一旦必须完成主奴隶书店的通过,也必须将其通知斯拉夫书店,将它们与新的主书柜同步。
这是由Sentinel完成的,该哨兵将信息命令发送到主库。
在主图书馆收到此命令之后,Sentinel将信息命令发送到主书柜,将返回Sentinella Slavic书店的列表。
因此,哨兵可以根据斯拉夫书架列表中的连接信息与每个从库建立连接,并在此连接上不断监视从属库。
通过酒吧/子机制,哨兵可以形成一个集群。
同时,哨兵通过信息命令获取有关与从数据库的连接的信息,还可以与从属数据库建立连接并进行监视。
从本质上讲,哨兵是在特定模式下执行中的重新定义,除了不需要请求操作,但仅完成监视,主要选择和通知活动。
因此,每个Sentinel请求还提供出版物/订阅机制,客户可以签署Sentinel消息。
Sentinel提供了许多签名消息的渠道,不同的渠道在主奴隶书店的切换过程中包含了几个关键事件。
特定的操作步骤预测,在客户端读取了哨兵配置文件后,它可以获取地址和哨兵门并建立与 Sentinel 的网络连接。
然后,我们可以在客户端运行 subscribe 命令来获取不同的事件消息。
确定由哪个哨兵进行主从切换的过程与判断主库“下线目标”的过程类似。
这也是一个“选票套利”的过程。

什么是redis哨兵模式

哨兵模式是一种特殊模式。
首先,Redis提供了Sentinel命令。
作为一个过程,它独立工作。
原理是守卫通过发送命令并等待Redis服务器响应来监控多个正在运行的Redis实例。
Sentinel是Redis的一种高可用解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监控任意数量的主服务器以及这些主服务器下的所有从服务器,并在被监控的主服务器登录时登录。
离线模式下,从服务器离线的主服务器下的服务器会自动升级为新的主服务器。
(推荐培训:Redis视频教程) 主要功能 1、时时监控Redis是否正常工作。
2.如果发现某个特定的Redis节点运行正常,它可以通知另一个进程(比如它的客户端); ); 3.自动切换的可能性。
当主节点不可用时,可以选择主节点的多个从节点(如果有多个从节点)之一作为新的主节点。
其他从节点将更改其跟随的主节点的地址,并提升为新地址。
主人的奴隶。
4. Sentinel为客户端提供服务发现。
客户端连接到Sentinel,提供当前master的地址,然后提供服务。
如果发生切换,即master不工作,Sentinel会为client提供一个新的。
地址。
更多Redis相关技术知识,请访问Redis入门指南专栏了解!

Redis 哨兵模式核心原理

Sentinal,中文是Sentinel

Sentinal是REDIS群集体系结构的非常重要的组成部分。
主要功能如下:

(1)群集监视,负责监视redishmaster和从属的群集是正常的吗? 工作(2)消息通知如果重新列斯实例失败,警卫帖子负责向管理员发送诸如警报消息之类的消息)配置中心如果发生迁移时故障转移,请通知客户端新的主地址

实际的警卫帖子太分布了,像守卫集群一样运行,并且在故障转移下彼此合作

(1)涉及分布式选择的问题(2)的后卫职位,尽管有些后卫柱子上挂着,但守卫群集仍然可以正常运行,因为如果故障转移系统是高可访问性机制的重要组成部分,则它是一个单一的要点,因此它无法实现高可访问性。

(1)哨兵至少需要3个事件以确保鲁棒性(2)Sentinel + Redis主服务器的推出不能保证零数据丢失,仅REDIS群集高可用性(3)向Sentinel + Redis Master Slave的分配体系结构,尝试在测试环境和生产环境中进行足够的测试和练习

1个前哨群集必须分布以2个以上的节点存款分布,是Quorum = 1

配置:Quorum = 1

MASTER DOWN作为S1和S2中的后卫职位,相信Master已降低,可以执行交换。
同时,将选择S1和S2中的后卫帖子执行故障转移。

目前需要大部分,也就是说,大多数后卫职位以2 = 2的大多数,大多数3 = 2中的大多数,大多数5 = 3,4。
(多数=多数= 2),两个后卫柱都可以执行故障转移。
主机降低,然后选择一个要执行的故障转移,因此剩下的2个后卫帖子可以执行故障转移。

如果后卫邮政的船长超过了ER-Master-Master-Master-down-Millions客户指定的毫秒数量,则可以将主人视为主观的考虑,这是非常简单的。
向下。

转换为ODown的条件非常简单。
如果警卫邮件在指定的时间内收到指定数量的Quorum,其他警卫也认为主人是SDown,则将其视为ODown。
主人被客观地考虑停机时间。

通过REDIS Pub/Sub System实现了由后卫柱相互发现的。
每个后卫职位都会向警卫职位发送消息,并感受到其他后卫职位的存在。

每秒,每个前哨都会向Sentinel发送消息:HelloChannel与Master+Slaves相对应。
是其自己的主机,IP和RunID,以及有关主的监视配置的信息。

每个前哨都会听哨兵:HelloChannel等同于每个主人+从属监测器,然后将其他哨兵的存在视为还监视此主人+奴隶。

每个后卫职位还将与其他后卫帖子交换监视配置,并彼此同步监视配置。

哨兵将负责自动纠正从属的任何配置。
例如,如果从属人想成为潜在的主人的候选人,则警卫职位将确保从属将数据复制到现有的主人。
例如,如果从属转移后,从属人连接到了错误的主人,则哨兵将确保它们连接到正确的主人

主人准备的交换操作。
奴隶优先(3 3)复制偏移量(4)RunID

如果奴隶和大师断开连接超过10倍下降的客户,而长度冠军则超过了。

(down-fefter-milliseconds*10)+millisconds_since_master_is_down_statate_state_state_state_state_state

排序从属较高的优先级,优先级(2)如果从属优先级相同,则可以查看从属具有更多数据的复制率,后优先级越多,优先级就越高。
Sentinel必须是主开关,主要是考虑法定数量ODown的数量,然后选择了Sentinel进行开关。
像5 centinelles一样,大多数为3,而法定人数设置为2,那么3个前哨授权可以执行Switch

=复数,则授权Quorum的金额,因此作为5个后卫帖子,法定人数为5。
从属监视,并且有相应的监视配置

切换前哨将从新的主人(药膏)中获得一个配置池。
再继续开关。
pub/duster -pulton -报告机制

这里的先前版本号非常重要,因为各种消息都会通过频道发布和监视遵循新的。

热门资讯
数控车床G94固定循环使用技巧解析
UG后处理路径设置指南
CNC编程G代码与M指令全解析指南
芯片和半导体有区别么
8g设置虚拟内存数值
G81编程实例:10mm刀具加工10010020mm正方形轮廓详解
16g内存改32g
电脑加装机械硬盘后卡顿原因及解决方法