zookeeper的集群组成及角色介绍
面试被问道zk,感觉自己对zk还算熟悉,但没答上来。平时真没注意过什么集群角色,
而且自己在zk官网也没注意过有相关描述。
见过一点东西不要觉得自己就会了就懂了,还是要踏踏实实的学习。
要认认真真的一点点的做笔记,要自己尝试能给别人讲明白。
转自 https://blog.csdn.net/fu123123fu/article/details/81193780
集群角色
Leader 角色
Leader 服务器是整个 zookeeper 集群的核心,主要的工作任务有两项:
1》事物请求的唯一调度和处理者,保证集群事物处理的顺序性。
2》集群内部各服务器的调度者。
Follower 角色
Follower 角色的主要职责是:
1》处理客户端非事物请求、转发事物请求给 leader 服务器。
2》参与事物请求 Proposal 的投票(Leader 发起的提案,要求 Follower 投票,需要半数以上follower节点通过,leader才会commit数据。)
3》参与 Leader 选举的投票。
Observer 角色
Observer 是 zookeeper3.3 开始引入的一个全新的服务器角色,从字面来理解,该角色充当了观察者的角色。观察 zookeeper 集群中的最新状态变化并将这些状态变化同步到 observer 服务器上。Observer 的工作原理与 follower 角色基本一致,而它和 follower 角色唯一的不同在于 observer 不参与任何形式的投票,包括事务请求Proposal的投票和leader选举的投票。简单来说,observer服务器只提供非事物请求服务,通常在于不影响集群事务处理能力的前提下提升集群非事物处理的能力。
集群组成
通常 zookeeper 是由2n+1台server组成,每个server都知道彼此的存在。
对于2n+1台server,只要有n+1台(大多数)server可用,整个系统保持可用。
我们已经了解到,一个 zookeeper 集群如果要对外提供可用的服务,那么集群中必须要有过半的机器正常工作并且彼此之间能够正常通信。
基于这个特性,如果要搭建一个能够允许F台机器down掉的集群,那么就要部署2*F+1台服务器构成的 zookeeper 集群。因此3台机器构成的 zookeeper 集群,能够在挂掉1台机器后依然正常工作。一个5台机器集群的服务,能够对2台机器挂掉的情况下进行容灾。如果一个由6台服务器构成的集群,同样只能挂掉2台机器。因此,5台和6台在容灾能力上并没有明显优势,反而增加了网络通信负担。系统启动时,集群中的server会选举出一台server为 Leader,其它的就作为 follower(这里不考虑 observer 角色)。
结论:之所以要满足这样一个等式,是因为一个节点要成为集群中的 leader,需要有超过集群中过半数的节点支持,这个涉及到 leader 选举算法。同时也涉及到事务请求的提交投票。
相关推荐
#### 一、Zookeeper集群配置原则及重要性 Zookeeper作为一款分布式的协调服务工具,在高可用系统架构中扮演着重要角色。为了保证系统的稳定性与可靠性,Zookeeper集群通常采用奇数节点的方式进行部署。这是因为...
本文档详细介绍了在Zookeeper集群管理下的Hadoop集群如何逐步添加服役节点,以实现集群扩容。 首先,我们需要了解当前的集群环境。在本例中,Hadoop集群由9个节点组成,其中包括2个主节点,而Zookeeper集群分布在3...
Zookeeper集群搭建手册配置指导 Apache ZooKeeper是一个分布式协调服务,广泛应用于分布式系统,如大数据处理、服务治理、配置管理等。它提供了一种简单、高效且可靠的分布式数据一致性解决方案。在搭建Zookeeper...
ZooKeeper集群由多个Server节点组成,其中只有一个节点作为Leader,其余节点作为Follower。在启动过程中,通过选举机制确定Leader。Leader负责处理所有的写操作,而读操作可以由任何节点处理。ZooKeeper使用原子的...
1. **节点类型**:Zookeeper集群由多个服务器节点组成,每个节点都运行着一个Zookeeper实例。根据角色,节点分为三种类型:Leader、Follower和Observer。 - Leader:负责接收客户端的写请求,执行事务操作,并通过...
该集群由Hadoop、Zookeeper和HBase三个组件组成,每个组件都扮演着重要的角色。 二、服务器环境和集群规划 在搭建Hadoop HA高可用集群之前,需要规划服务器环境和集群架构。服务器环境包括主机名、IP地址、用户名...
5. **命令行工具**:Zookeeper提供了`zkCli.sh`(在Linux环境下)或`zkCli.cmd`(在Windows环境下)的命令行工具,用于与Zookeeper集群交互,执行创建、删除、更新ZNode,以及查询数据等操作。 **搭建Zookeeper伪...
ZooInspector 提供了直观的方式来浏览和理解 ZooKeeper 集群中的数据结构,帮助开发者和管理员监控和调试 ZooKeeper 配置。 1. **ZooKeeper 节点信息**: - ZooKeeper 的数据结构是层次化的,类似于文件系统,由...
3. 观察者(Observer):在Zookeeper集群中,除了选举出的领导者(Leader)和追随者(Follower)之外,还有一种角色叫观察者。观察者不参与投票,但可以接收领导者广播的数据更新,从而扩展Zookeeper集群的读性能。 ...
Zookeeper采用Paxos算法的简化版本ZAB协议进行领导者选举,当一个Zookeeper集群中的一部分节点失效或失去联系时,ZAB协议可以确保集群能够快速恢复并重新选举出新的领导者。 六、Zookeeper的监控与调优 通过JMX接口...
通常,为了高可用性,Zookeeper集群会配置奇数个Server节点。 **Zookeeper的部署模式:** 1. **独立模式(Standalone)**:单个Zookeeper Server运行,适用于测试和学习,不适合生产环境。 2. **集群模式...
1.1 ZooKeeper的角色:ZooKeeper作为一个分布式一致性服务,它提供命名服务、配置管理、集群同步、选举等功能,常用于分布式数据库、分布式计算、服务发现等多个领域。 1.2 数据模型:ZooKeeper的数据结构类似于...
Zookeeper 在 Hadoop 高可用集群中扮演着非常重要的角色,它提供了分布式锁、配置管理、集群管理等功能,能够确保 Hadoop 集群的可靠性和稳定性。Zookeeper 的主要功能包括: 1. 分布式锁:Zookeeper 提供了分布式...
1. **ZooKeeper角色与架构**:ZooKeeper集群由多个服务器组成,每个服务器都扮演着数据节点(ZNode)的角色。整个集群遵循一个主从结构,其中一部分服务器作为领导者(Leader),其余为跟随者(Follower)。领导者...
Zookeeper 集群由多个服务器组成,每个服务器都是平等的。集群中的每个节点都有自己的 Znode 数据副本,客户端请求会路由到任意一个节点,该节点称为 Leader,其他节点为 Follower。Leader 负责处理写请求,Follower...
Zookeeper是一个分布式服务框架,由Apache Hadoop子项目组成,它提供了可靠的协调系统,可以解决分布式环境中的数据管理问题,如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。 Zookeeper结构...
2. 集群部署:如何配置多台机器组成 Zookeeper 集群,包括设置集群 ID、配置文件同步等。 3. 命令行操作:掌握基本的 zkCli.sh 命令,如创建节点、读取数据、设置权限等。 4. 监控与调试:了解如何查看 Zookeeper 的...
1. **集群角色**:Zookeeper集群通常由Leader、Follower和Observer三种角色组成。Leader负责处理读写请求,Follower和Observer则主要处理读请求。 2. **会话**:客户端与Zookeeper之间的通信是通过会话(session)来...
在使用ZooKeeper时,需要注意一些最佳实践,例如,为了保证高可用性,通常会部署一个由多个节点组成的ZooKeeper集群,每个节点都应配置奇数个,以防止因节点故障导致半数以上节点不可用的情况。此外,合理规划ZNode...
Zookeeper集群通过配置文件(zoo.cfg)设定,包括服务器ID、端口、数据目录、日志目录等参数。管理员可以通过命令行工具或Java API对集群进行监控和管理,如查看状态、调整配置、重分配数据等。 七、Zookeeper在...