ETCD和Zookeeper的对比(一)
文章目录
前言
最近开发工作中使用到了etcd作为注册中心,简单的了etcd作为注册中心与我们常用的zookeeper有什么区别。
1、分布式一致性算法
1.1、为什么需要一致性
为了高可用和数据安全起见,分布式的集群一般都是由几个节点构成。多节点证明它们之间肯定会有数据的通信,同时,为了能够使集群对外是透明的,一个整体对外提供服务,那么客户端访问服务端的数据肯定是要数据同步,也即数据一致性。
1.2、zab协议
zk集群是Leader/Follower模式来保证数据同步的。整个集群同一时刻只能有一个Leader,其他都是Follower或Observer。Leader是通过选举选出来的,这里涉及到ZAB协议(原子消息广播协议)。
zab的概念:所有事务请求是由一个全局唯一的服务器来协调处理,这个的服务器就是Leader服务器,其它服务器都是Follower服务器或Observer服务器。Leader服务器负责将一个客户端的请求转换成那个一个事务Proposalͧ(提议),将该Proposal分发给集群中所有的Follower服务器。然后Leader服务器需要等待所有Follower服务器的应答,当Leader服务器收到超过半数的Follower服务器进行了明确的应答后,Leader会再次向所有的Follower服务器分发Commit消息,要求其将前一个Proposal进行提交。
总的来说就是,涉及到客户端对zk集群数据改变的行为都先由Leader统一响应,然后再把请求转换为事务转发给其他所有的Follower,Follower应答并处理事务,最后再反馈。如果客户端只是读请求,那么

本文详细比较了ETCD和Zookeeper在分布式一致性算法上的区别,主要聚焦于ZAB(Zookeeper Atomic Broadcast)和RAFT协议的选主过程、数据同步机制,以及各自在技术细节和应用场景上的差异,如MVCC、接口、存储性能和轻量化特性。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



