内容简介:这一节我们来认识一下在Kafka中有着超然地位的Zookeeper。ZooKeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper的目标就是封装好复杂、易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Zookeeper有以下一些特点:
这一节我们来认识一下在Kafka中有着超然地位的Zookeeper。
Zookeeper初识
ZooKeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper的目标就是封装好复杂、易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
Zookeeper有以下一些特点:
- Zookeeper的内部数据结构是树状结构的。
- 每个节点称为zNode。
- 每个zNode都有一个唯一路径(path)。
- zNode分长久存在的和临时存在的。
- 每个zNode都可以存储数据。
- zNode不能重命名。
- 每个zNode的任何变化都可以被监控。
所以Zookeeper作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,Zookeeper作用主要是用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理,可以说,Zookeeper相当于带有通知机制的文件系统。
Role of Zookeeper in Kafka
Zookeeper在Kafka中的地位是超然的。它的主要作用有以下几点:
- Zookeeper管理着Kafka集群中的若干个Broker,保存着一份完整的Broker列表。
- 维护Topic信息,比如Partitions、Replication Factor、ISR等。
- Zookeeper帮助选举Partition的Leader.
- 当有任何变动时,由Zookeeper给Kafka发送通知,比如添加一个新的Topic、Broker挂掉了、删除Topic等等。
- Zookeeper集群中也有Leader和Follower的概念。Leader负责写数据,Follower负责读数据.
- 存储Kafka集群ID。
- 存储访问控制列表(ACL,Access Control List)。控制Topic、Consumer Group、User等访问权限。
Size of Zookeeper
Zookeeper对于Kafka有一个很重要的投票选举功能。所以通常情况下Zookeeper集群最少使用三个Server。如果增加更多Server,那最好是奇数个Server(3,5,7,9,2N+1)。因为Zookeeper有一个特性,就是集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个Zookeeper Server,那么只要有1个Zookeeper Server宕机,整个集群就不能用了,因为1没有过半,所以我们要搭建奇数个Server,这样就可以保证最大允许1,2,3,4,N个Server宕机,而保证整个系统不受影响。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Kafka从上手到实践-初步认知:MQ系统
- 为各行各业构建认知解决方案,第 3 部分: 让认知数据变得可以搜索和理解的设计模式
- 认知
- [原]对开源的认知
- 对过WAF的一些认知
- 对过 WAF 的一些认知
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux/Unix设计思想
甘卡兹 / 漆犇 / 人民邮电出版社 / 2012-3-28 / 39.00元
《Linux\Unix设计思想/图灵程序设计丛书》内容简介:将Linux的开发方式与Unix的原理有效地结合起来,总结出Linux与Unix软件开发中的设计原则。《Linux\Unix设计思想/图灵程序设计丛书》前8章分别介绍了Linux与Unix中9条基本的哲学准则和10条次要准则。第9章和第10章将Unix系统的设计思想与其他系统的设计思想进行了对比。最后介绍了Unix哲学准则在其他领域中的应......一起来看看 《Linux/Unix设计思想》 这本书的介绍吧!