ETCD读写处理

轻量、高可用的分布式组件,分布式系统协调和元数据存储

1、高可用:一半节点存活就可以提供服务

2、一致性:leader选举,日志复制,同步数据

3、watch机制

4、运维复杂性低

Etcd的读写处理

写请求:log同步、状态机维护

读请求:线性一致性

L=leader,F=follower(从节点)

ETCD读写处理_第1张图片

写请求:

 1、客户端发起修改数据请求,v=3

2.1、leader以日志的形式将修改请求下发给从节点

3.1,3.2、从节点收到这个事件,先将日志保存到节点的日志文件中,保存成功后,会给leader回复一个响应v=3这个事收到了,但是还有没改

4.1、Leader回复客户端,修改v=3这个事成功了,当所有的从节点都回复leader,修改事件的日志记录成功了,然后leader节点开始提交这个修改,当leader修改成功后,会告诉从节点也修改数据

此时不一定所有节点的v都等于3,如果客户端请求leader,那v=3,请求从节点,不一定返回3

读请求:

ETCD读写处理_第2张图片

 当客户端请求到从节点的时候,从节点会从leader获取当前值最新的commit-index,然后和本地的对比,如果index是最新的,就直接将结果返回给客户端;

如果不一致,从节点要等待自己的状态机把最新的状态都变更了,将变更后的值回给客户端;

你可能感兴趣的:(k8s,etcd)