Kafka从上手到实践-初步认知:Zookeeper

栏目: 后端 · 发布时间: 5年前

内容简介:这一节我们来认识一下在Kafka中有着超然地位的Zookeeper。ZooKeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper的目标就是封装好复杂、易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Zookeeper有以下一些特点:

这一节我们来认识一下在Kafka中有着超然地位的Zookeeper。

Zookeeper初识

ZooKeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper的目标就是封装好复杂、易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

Zookeeper有以下一些特点:

  • Zookeeper的内部数据结构是树状结构的。
  • 每个节点称为zNode。
  • 每个zNode都有一个唯一路径(path)。
  • zNode分长久存在的和临时存在的。
  • 每个zNode都可以存储数据。
  • zNode不能重命名。
  • 每个zNode的任何变化都可以被监控。

Kafka从上手到实践-初步认知:Zookeeper

所以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等访问权限。

Kafka从上手到实践-初步认知:Zookeeper

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宕机,而保证整个系统不受影响。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Linux/Unix设计思想

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设计思想》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具