架构师面试(一):主从模式

问题

(此题目考察对分布式设计的认知)

在分布式存储系统中,往往都会有一个【Leader】或【Master】角色,形成“一主一从”或“一主多从”的运行模式; 这里的“主”一般承担对数据的“写入”任务。

(1)“主”是必须的吗?难道没有“主”就没法干活吗?

(2)这样的设计背后到底存在什么样的原理呢? 

结合场景阐述自己的理解!

答案

在分布式存储系统中,往往都会存在一个【主】,用于对数据进行“写入”;

这个【主】角色存在的背后原理到底是什么呢?主要有两点:

一、防止写冲突;

二、简化数据同步逻辑。

先说【防止写冲突】

假设一个分布式存储系统,包含nodeA、nodeB、nodeC 三个节点,这三个节点互为副本,没有主角色;

这三个节点上同时存在着  x=1 的数据记录;

假设有两个客户端 clientA 和 clientB 同时分别向 nodeA 和 nodeB 写入 x=5 和 x=9;

写入成功后, nodeA 会将 x=5 同步给 nodeC;同时,nodeB 会将 x=9 同步给 nodeC。

此时,我们需要理解  nodeC 的心情,它应该听谁的呢? x 应该是 5 还是 9,还是1呢?怎么解决 nodeC 比较困惑的问题呢?

通常的解决方案是: 必须要有一个“全局说了算”的角色存在,这个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值