Zookeeper整理汇总
概述
zookeeper是一个分布式的、开源的协调服务,他实现了一系列的基础服务,并暴露出简单的接口供分布式程序使用,依赖这些接口,分布式应用可以实现一些更高级的服务,如同步、配置管理、集群管理、命名服务等。例如Hadoop,Hbase,Kafka等组件都依赖Zookeeper
Zookeeper的角色说明
Leader
Leader在集群中只有一个节点(因为Zookeeper基于Zab协议),是Zookeeper集群的中心,负责协调集群中的其他节点。从性能角度上讲,leader可以选择不接受客户端的连接。主要作用为:
(1)所有的跟随者Follower的写请求都会转交给领导者Leader执行。Leader接收到一个写请求后,首先会发送给所有的Follower,统计Follower写入成功的数量。当有超过半数的Follower写入成功后,leader就会认为这个写请求提交成功,通知所有的Follower commit这个写操作,保证事后哪怕是集群崩溃恢复或者重启,这个写操作也不会丢失。
Follower
Follower在集群中有多个,主要的作用是:处理客户端发送的读请求,当客户端发送写请求时,Follower会将该请求转发至Leader;当Leader挂了之后,Follower间会经过投票后形成新的Leader