模型服务连接失败
Redis
分类
分布式系统
难度
未设置
来源数
1
更新时间
2026/03/29 00:57

答案

主从切换主要有两种情况会造成数据丢失: 1. 异步复制同步丢失:由于主->从是异步复制,如果主服务器写入后,还没发给从服务器就宕机,或者网络发生故障,就会导致数据丢失,针对这种情况,可以设置最大延迟,如果从节点数据复制和同步的延迟都超过了这个最大值,主服务器就会拒收写请求,客户端可以采用降级措施,先将请求进行缓存,等主节点恢复正常了再执行。 2. 集群产生脑裂丢失:当发生某些故障,导致主服务器无法向从服务器发送信息,但客户端仍可以写入主节点,此时,哨兵节点也发现主节点丢失,那么他就会重新选举一个主节点,当旧主节点恢复正常后,他会降级为从节点,向新主节点建立连接,并且申请同步数据,清除自己的数据,但是这个时候,就会清除客户端向他写入的数据,导致数据丢失。解决方法就是,可以设置当主节点发现从节点下线太多,或者网络延迟太大,就拒收客户端请求,直到恢复正常,或者重新选举主节点,这样客户端的数据就只会写入新主节点,不会导致丢失。

相关题目(5)

分布式系统Redis
分布式系统并发Redis
分布式系统Redis
分布式系统并发Redis

元信息

审核状态: active
关联来源: 1

来源面经题(0)

这道题目前没有手动沉淀的面经题来源。

来源(1)

Java八股(数据库).md

knowledge_note
Question 124: 主从切换如何减少数据丢失? Source answer: 主从切换主要有两种情况会造成数据丢失: 1. 异步复制同步丢失:由于主->从是异步复制,如果主服务器写入后,还没发给从服务器就宕机,或者网络发生故障,就会导致数据丢失,针对这种情况,可以设置最大延迟,如果从节点数据复制和同步的延迟都超过了这个最大值,主服务器就会拒收写请求,客户端可以采用降级措施,先将请求进行缓存,等主节点恢复正常了再执行。 2. 集群产生脑裂丢失:当发生某些故障,导致主服务器无法向从服务器发送信息,但客户端仍可以写入主节点,此时,哨兵节点也发现主节点丢失,那么他就会重新选举一个主节点,当旧主节点恢复正常后,他会降级为从节点,向新主节点建立连接,并且申请同步数据,清除自己的数据,但是这个时候,就会清除客户端向他写入的数据,导致数据丢失。解决方法就是,可以设置当主节点发现从节点下线太多,或者网络延迟太大,就拒收客户端请求,直到恢复正常,或者重新选举主节点,这样客户端的数据就只会写入新主节点,不会导致丢失。 Reviewed answer: 需要同时应对异步复制丢失和脑裂丢失。可通过设置复制延迟阈值,在从节点延迟过大时主节点拒绝写请求;也可在检测到从节点大量下线或网络延迟过大时拒绝客户端写入,减少旧主恢复后被覆盖导致的数据丢失。