本文主要是介绍分布式系统原理(3)--副本控制协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2、基本副本协议
副本控制协议指按特定的协议流程控制副本数据的读写行为,使得副本满足一定的可用性和一致性要求的分布式协议。副本控制协议要具有一定的对抗异常状态的容错能力,从而使得具有一定的可用性,同时要能提供一定一致性级别。由CAP原理可知,设计满足强一致性,且出现任何网络异常时都可用的副本协议是不可能的。故需在可用性、一致性与性能等各要素间按照具体需求折中。
副本控制协议可分为两大类:“中心化(centralized)副本控制协议”和“去中心化(decentralized)副本控制协议”
(1)中心化副本控制
l 基本思路:由一个中心节点协调副本数据的更新、维护副本之间的一致性。
l 优点:简单,使得分布式并发(多节点同时修改副本)控制问题,简化为中心节点单机并发控制问题。使用方法:加锁等
l 缺点:系统的可用性依赖于中心化节点,当中心化节点异常或与中心节点通信中断时,系统将失去某些服务,也就是存在一定的停服务时间
(2)primary-secondary协议
也称primary-backup,是一种非常常用的中心化副本控制协议。该协议中副本分两大类,有且仅有一个副本作为primary副本,剩余副本都作为secondary副本。维护primary副本的节点作为中心节点,负责维护数据的更新、并发控制、协调副本的一致性。primary-secondary协议一般要解决四大问题,数据更新流程、数据读取方式、primary副本的确定和切换、数据同步(reconcile)。
(a)数据更新基本流程
1)数据更新都是由prim
这篇关于分布式系统原理(3)--副本控制协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!