好气,博主电脑硬盘坏了,珍藏了几个G的学习资料毁于一旦,泪目
尝试修复硬盘未能成功,突然意识到如果有将资料备份在另一个硬盘里就好了,心酸
提到备份自然就想到了副本,那就正好借这个机会再回顾下关于分布式系统的副本知识。
使用副本是分布式系统容错以及提高可用性的基本手段
副本协议是贯穿整个分布式系统的理论核心
-----------------正文
概念:
副本(replica/copy)指在分布式系统中为数据或服务提供的冗余。 (冗余:含义是指人为增加重复部分,其目的是用来对原本的单一部分进行备份,以达到增强其安全性的目的,这在信息通信系统当中有着较为广泛的应用)
数据副本指在不同的节点上持久化同一份数据(e.g. Mysql主从备份、Zookeeper集群、Etcd集群),当出现某一个节点的存储的数据丢失时,可以从副本上读到数据。数据副本是分布式系统解决数据丢失异常的唯一手段。
服务副本指数个节点提供某种相同的服务(e.g. 服务集群)通过负载均衡技术来分担流量压力,这种服务一般并不依赖于节点的本地存储,其所需数据一般来自其他节点。
-------
无状态副本(服务副本)没有太多需要关注的地方,我们更需要关注的是有状态副本(数据副本),这也是分布式技术的难点所在。
一、数据副本策略
以机器为单位