Java核心知识 Zookeeper(二)角色

createh51个月前 (04-05)技术教程9


Zookeeper 集群是一个基于主从复制的高可用集群,每个服务器承担如下三种角色中的一种

Leader

1. 一个 Zookeeper 集群同一时间只会有一个实际工作的 Leader,它会发起并维护与各 Follwer

及 Observer 间的心跳。

2. 所有的写操作必须要通过 Leader 完成再由 Leader 将写操作广播给其它服务器。只要有超过

半数节点(不包括 observeer 节点)写入成功,该写请求就会被提交(类 2PC 协议)。

Follower

1. 一个 Zookeeper 集群可能同时存在多个 Follower,它会响应 Leader 的心跳,

2. Follower 可直接处理并返回客户端的读请求,同时会将写请求转发给 Leader 处理,

3. 并且负责在 Leader 处理写请求时对请求进行投票。

Observer

角色与 Follower 类似,但是无投票权。Zookeeper 需保证高可用和强一致性,为了支持更多的客

户端,需要增加更多 Server;Server 增多,投票阶段延迟增大,影响性能;引入 Observer,

Observer 不参与投票; Observers 接受客户端的连接,并将写请求转发给 leader 节点; 加入更

多 Observer 节点,提高伸缩性,同时不影响吞吐率。


相关文章

java 核心技术-12版 卷Ⅰ- 4.7.1 记录 record

原文4.7 记录有时,记录就只是数据,而面向对象程序设计提供的数据隐藏有些碍事。考虑一个类Point ,这个类描述平面上的一个点,有x和y 坐标。当然,可以如下创建一个类public class Po...

阿里大数据技术架构师整理分享java面试核心知识点框架篇文档

前言本文是对Java程序员面试中常见的微服务、网络编程、分布式存储和分布式计算等必备知识点的总结,包括Spring 原理及应用、Spring Cloud原理及应用、Netty网络编程原理及应用、Zoo...

java 核心技术-12版 卷Ⅰ- 5.10 继承的设计技巧

原文5.10 继承的设计技巧在本章的最后,我会给出使用继承时很有用的一些技巧。将公共操作和字段放在超类中正是因为这个原因,我们将姓名字段放在 Person 类中,而没有将它重复放在 Employee...

java 核心技术-12版 卷Ⅰ- 4.8.7 设置类路径

原文4.8.7 设置类路径最好使用 -classpath(或 -cp, 或者Java 9 中的 --calss-path) 选项指定类路径:java -classpath /home/user/cla...

java 核心技术-12版 卷Ⅰ- 5.4 对象包装器与自动装箱

原文5.4 对象包装器与自动装箱有时,需要将 int 这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类,例如,Integer类对应基本类型 int。通常,这些类称为包装器 (wrapper...