Redis的哨兵模式

Redis的哨兵模式

1、什么是哨兵模式?

能够自动监控master是否发生故障,如果故障了会根据投票数从slave中挑选一个作为master,其他的slave会自动转向同步新的master,实现故障自动转义。

2、原理

sentinel会按照指定的频率给master发送ping请求,看看master是否还活着,若master在指定时间内未正常响应sentinel发送的ping请求,sentinel则认为master挂掉了,但是这种情况存在误判的可能,比如:可能master并没有挂,只是sentinel和master之间的网络不通导致,导致ping失败。

为了避免误判,通常会启动多个sentinel,一般是奇数个,比如3个,那么可以指定当有多个sentinel都觉得master挂掉了,此时才断定master真的挂掉了,通常这个值设置为sentinel的一半,比如sentinel的数量是3个,那么这个量就可以设置为2个。

选举过程:

1、第一个发现该master挂了的哨兵,会向每个哨兵发送命令,让对方选举自己成为领头哨兵

2、其他哨兵如何没有选举过他人,就会将这一票投给第一个发现该master挂了的哨兵

3、第一个发现该master挂了的哨兵如果发送有超过一般的哨兵投给自己,并且其数量也超过了设定的quoram参数,那么该哨兵就成了领头哨兵

4、如果多个哨兵同时参与这个选举,那么就会重复该过程,知道选出一个领头哨兵

5、选出领头哨兵后,就开始了故障修复,会从选出一个从数据库作为新的master

3、redis哨兵模式主从切换过程中还能正常提供服务吗

Redis Sentinel 模式下的主从切换过程可以保证服务的高可用性。在 Sentinel 模式下,Redis 集群会配置多个 Sentinel 实例,它们会监控主服务器和从服务器,并在主服务器出现故障时自动进行故障转移。

在主从切换过程中,Sentinel 会首先选举出一个新的主服务器,并将其他从服务器指向新的主服务器。这个过程通常是非常快的,一般在几秒钟内就可以完成。在此期间,客户端仍然可以向旧的主服务器发送请求,而旧的主服务器会在新的主服务器接管之前处理这些请求。

一旦新的主服务器接管了工作,它就会开始接收客户端的写请求,并将这些写请求同步到其他的从服务器。在这个过程中,如果有新的从服务器加入,它也会被同步到新的主服务器。

因此,在主从切换过程中,Redis 集群仍然可以正常提供服务,只是在切换的过程中可能会有一段时间无法处理写请求。但是,由于 Redis 的数据持久化机制,即使在主从切换的过程中有部分数据丢失,也只是暂时的,不会影响数据的完整性和一致性。

4、哨兵模式主从切换数据丢失问题

哨兵模式是一种高可用性(HA)的解决方案,通常用于构建分布式系统。在这种模式下,有一个主节点和多个从节点。主节点负责处理所有的写请求,而从节点则负责复制主节点的数据。当主节点发生故障时,哨兵模式会自动选举出一个新的主节点,从而保证系统的高可用性。

然而,哨兵模式也存在一个问题,那就是主从切换过程中可能会出现数据丢失。这是因为在主从切换的过程中,新的主节点需要从旧的主节点上同步数据,这个过程可能会导致一部分数据还没有被同步到新的主节点,这就可能导致数据丢失。

为了解决这个问题,我们可以采取一些措施来避免或者减少数据丢失。例如,我们可以配置哨兵模式,使得新选举出来的主节点在完成同步之前,不接受任何写请求。这样可以确保新的主节点不会接收到未同步的数据,从而避免了数据丢失。

此外,我们还可以配置哨兵模式,使得新选举出来的主节点在完成同步之后,再开始接受写请求。这样可以确保新的主节点已经完全同步了数据,从而避免了数据丢失。

总的来说,哨兵模式主从切换数据丢失的问题是可以通过合理的配置和管理来避免或者减少的。

相关推荐
云存储小天使18 分钟前
训练效率提升50%以上:GooseFS 写缓存及其在具身智能数据处理中的应用
缓存·腾讯云·对象存储·goosefs
这个DBA有点耶31 分钟前
数据库容灾进入“秒级时代”:同城双活架构原理、关键技术选型与落地实践
数据库·架构·dba
2601_962074811 小时前
大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL
大数据·数据库·mysql
2601_962071171 小时前
八. Spring Boot2 整合连接 Redis(超详细剖析)
spring boot·redis·后端
2601_962073811 小时前
大数据-240 离线数仓 - 广告业务 测试 ADS层数据加载 DataX数据导出到 MySQL
大数据·数据库·mysql
Frank_refuel2 小时前
【MYSQL进阶】-> 索引理解
数据库
lv__pf2 小时前
MVCC机制【TL mysql7】
数据库
cqsztech3 小时前
Oracle ai database 26ai rac 通过gold image 更新季度补
数据库·人工智能·oracle
认真就输DBA3 小时前
一个DBA,把用了16年的两款软件换了
数据库·ai·dba·tabby·笔记软件·obsidian
穆利堂-movno13 小时前
郑州新网软件科技有限公司AI 数据源错误纠正反馈
大数据·数据库·人工智能