设计数据密集型应用-第五章-备份机制(单机可存全量的问题和方案)

本文探讨了互联产品中为实现高可用性和扩展性所采用的数据备份技术。主要介绍了一主多从、多主多从和无主多从三种备份架构模式,并分析了各自的同步方式、写模式、读模式及特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在互联产品中,为了使产品服务满足高可用,可扩展(规模),防延迟等性能指标,普遍涉及到数据备份的问题(本章主要讨论的单机可存全量的业务场景),即将数据在不同节点机器中进行备份(其中涉及到很多同步细节的问题)。

根据机器节点的相互关系,可以将数据备份整体架构分一下三种:

  • 一主多从备份方式
  • 多主多从备份方式
  • 无主多从备份方式
架构模式同步方式写模式读模式特点
一主多从实时同步/异步同步写主库,根据接受到的请求逐一添加普遍读从库从库和主库的同步,普遍是一实时同步,多异步同步(需要考虑自身的业务情况)
如果存在多实时同步的从库,可能导致,一个写的请求部分失败(部分从句失连或者crash)或者耗时较长(需要所有实时同步从句返回成功写入);
但是如果是非实时同步,会存在读取的信息是”过时”信息;
存在一些确保读写一直的小技巧(可在代码应用层添加), i.e. Read-After-Write (如果读频繁更新的信息,只读主库), Monotonic-Read(使用户只从一个特定的从库读)
多主多从实时同步/异步同步写主库读从库涉及到写多主库的冲突问题(借助书中的一张图,见下图),可能的解决方案
1. 特定类型的写操作指引到特定的主节点(Conflict Avoidance) 2. 记录每一个写操作,经下次读操作,由用户来确定最后值;
无主多从异步同步写从库读从库法定人数读写规则 (w + r > n), 即读和写时的节点数之和要大于总节点数,以确保至少有一个节点更新和读到一个最新状态的节点;

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值