zookeeper 3 总结 主要说的是如何实现业务方面的分布式事务。还有自身集群同步的方式,都是2pc

1,2 的回顾
①集群(zoo.cfg,myid)
②znode 节点的数据模型 、
特性(有序,临时(断开消失,不能有子节点,不能重复在一个级别的)
③节点的stat 一些参数的以一cZxid

zookeeper的由来详细

比如现在有
zookeeper解决的问题

分布式的一个协调机制

新的方式引入zookeeper
1,我们用到zookeeper就要防止单点故障(使用集群) 集群特点:高可用,高性能。
2,保持每台数据的一致性
3,如果leader挂了,怎么办
4,如果实现分布式事务(2pc)方式

2pc 示意图
在这里插入图片描述

为什么是2n+1台服务器。要过半数 如果是5台,最多可以挂掉2台,如果是6台,最多也是挂掉2台

集群整体工作图
在这里插入图片描述
从客户端或者是follower传过来的请求,leader会将请求的数据封装成一个zxid (64位的唯一)
2,将有这个id 的proposal对象给每个follower ,每个节点去修改数据。写入本地磁盘,
3,给leader一个反馈,是失败还是成功了
4,当leader收到过半成功的反馈之后,再给每个follower。告诉他们可以提交了。

如果在4的过程中leader挂了,也就是一部分follower收到了,一步分没有收到。怎么办?
同步到follower的消息,就保存,如果没有,那么就放弃。

以上这个是集群自身同步的2pc

ZAB协议
主要干嘛用的:
重新选举一个leader 就是这么一个作用。具体怎么选,就是实现的问题了。
通过一个zxid 的方式, epoch,这个就是新的leader会+1,
保证集群整体同步 特殊情况(在执行事务的时候挂掉了,怎么办)

发布了66 篇原创文章 · 获赞 0 · 访问量 800

猜你喜欢

转载自blog.csdn.net/Be_With_I/article/details/103901657
今日推荐