一 zookeeper
Zookeeper 角色
Zookeeper 集群是一个基于主从复制的高可用集群,每个服务器承担如下三种角色中的一种
Leader
一个 Zookeeper 集群同一时间只会有一个实际工作的 Leader,它会发起并维护与各 Follwer及Observer间的心跳。
所有的写操作必须要通过 Leader 完成再由 Leader 将写操作广播给其它服务器。只要有超过半数节点(不包括 observeer 节点)写入成功,该写请求就会被提交(类 2PC 协议)。
Follower
一个 Zookeeper 集群可能同时存在多个 Follower,它会响应 Leader 的心跳;
Follower 可直接处理并返回客户端的读请求,同时会将写请求转发给 Leader 处理;
并且负责在 Leader 处理写请求时对请求进行投票。
Observer
角色与 Follower 类似,但是无投票权。Zookeeper 需保证高可用和强一致性,为了支持更多的客户端,需要增加更多 Server;Server 增多,投票阶段延迟增大,影响性能;引入 Observer,Observer 不参与投票; Observers 接受客户端的连接,并将写请求转发给 leader 节点; 加入更多 Observer 节点,提高伸缩性,同时不影响吞吐率。
分布式协调服务组件
目的:解决分布式数据事物一致性
节点:类似于路径,节点可以存储数据
二 zookeeper 能做什么
1 搜索
2管理配置文件
3充当dobbo的注册中心
4管理域名
三 单节点安装
1安装JDK
2 解压
3创建配置文件 zoo.cfg
4启动