分布式理论(4)·有副本才有高可用

本文探讨了分布式系统中提高高可用性的关键——副本策略,包括单主复制、多主复制和无主复制。单主复制面临数据一致性与服务短暂中断的问题,多主复制可能导致数据冲突,而无主复制则需解决并发写操作引发的一致性挑战。
摘要由CSDN通过智能技术生成

前言

上一篇文章我们讨论了单机运算能力不足的问题,了解了分布式系统也是基于分治思想来实现运算分布式化,达到提高系统整体算力的最终目标。分布式系统的出现弥补了集中式系统在运算和存储方面存在的不足,做到了集中式系统不方便实现甚至做不到的事,但是有一件事是包括分布式系统在内的所有系统都可能遇到的,那就是宕机。让分布式系统保证不宕机则是本篇的主题。

这是系列文章的第四篇,讨论分布式系统如何达到高可用的目标。分布式系统具有的扩展性提升了系统整体算力和存储能力,解决了这两个核心问题后要考虑的就是如何让系统平稳地运行下去,使我们能够持续地感受到分布式系统的强大,我们管这份强大叫高可用性。实现高可用性的唯一策略便是备份副本。

备份副本

一个系统的软实力再强大、应用的设计思想再精妙,都挡不住硬条件的不足(如机房停电、网络故障等)对自身的打击,物理设备因各种事故瘫痪的可能性时刻存在,所以要想让一个系统具有高可用性只有一个方法——副本(Replication)。一台机器在故障后马上将服务切换到副本机器上,才能实现服务不断。

副本(Replication)

副本(Replication)是分布式系统必备的两种能力之一(另一种是分片(partition/sharding)),对于海量数据来说,replication一方面可以使系统具有高可用性,另一方面还可以提升读取的效率。

假设我们从来没有听说过分布式系统和副本策略,单单给一个思路:通过复制一份原来的系统来提高系统可用性。那么我们最容易往下想的思路是:以原本提供服务的系统为蓝本,复制出一份副本备用(standby),蓝本持续提供服务,当蓝本出现故障无法工作时,失效转移(failover)到副本继续对外提供服务,不使系统陷入瘫痪。

上述思路提到的蓝本、副本很容易可以看出来是一主一从的身份,很多算法都有使用这种理念设计高可用性算法,它有很多不同的叫法:leader & followermaster & slaveactive & standby,本篇统一叫master & slavemaster & slave的关系并非永久不变的,failover操作会转换二者身份。

replication有三种玩法,接下来会通过推导来串讲这三种玩法。

首先,上述的master & slave是第一种类型,我们叫它单主复制(single leader replication),或者另一个更生动的叫法:一主多从。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值