分布式一致性问题

https://segmentfault.com/a/1190000012534071
分布式一致性包括:
强一致性:保证副本都一致
可用性:在用户容忍时间范围内返回用户预期结果
分区容错性:出现网络分区时仍能对外提供可用服务。

主要方法两阶段提交协议,三阶段提交协议

两阶段提交协议

分为协调者master参与者segment
第一阶段:投票阶段
协调者像参与者分发任务,参与者执行并记录日志,但不提交等待,返回结果,阻塞ready等待协调者指令。
第二阶段:事务提交
三种情况:全部成功,部分不成功,超时。
第一种的话,协调者发送全部提交指令。
第二三种的话,发布回滚操作

存在的问题:单点问题,如果master宕机,segment会阻塞,如果存在网络问题也会出现数据不一致。

所以引入超时和互询机制,如果master超时没收到应答发布回滚指令,如果segment处于ready状态但没收到第二阶段提交指令超时,则开始轮训,如果轮训的那一个提交或者回滚了则它也提交或回滚;如果未达到ready状态,直接回滚;如果轮训的处于ready状态,则问下一个,直到都是ready,等待指令。

三阶段提交协议

包括can,pre,do
can阶段询问每个segment是否能执行。
pre阶段如果都能执行这二阶段提交一样。
如果存在不能执行的发送abort指令,所有中断。
do如果未中断,都可执行则和二阶段事务提交一样。

好处就是在do阶段如果segment没收到master指令,不会阻塞,直接提交,因为由于有pre阶段所以都可以提交,此时是因为网络出问题,导致没收到master指令,可直接提交。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值