一、zookeeper的定义

  打开zookeeper官网,赫然一行大字,写着:“Apache ZooKeeper致力于开发和维护实现高度可靠的分布式协调的开源服务器”。什么意思呢?就是Apache ZooKeeper的目标是开发维护开源服务器,这服务器是干什么的呢?是做分布式协调的。这服务器的特点是什么呢?是高度可靠的。关键就是高度可靠,不用去验证,也不用怀疑zookeeper的高度可靠性,搜索应用界的大佬solr和大数据服务界的大佬Hadoop就是使用zookeeper提供集群管理。

二、什么是zookeeper

  ZooKeeper诞生于Yahoo,后转入Apache孵化,最终孵化成Apache的顶级项目,是Hadoop和Hbase的重要组件。ZooKeeper是一种集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以分布式应用程序的某种形式使用。由于实现上述需求都需要做很多工作来修复不可避免的错误和竞争条件。因此,这些服务的实现变得非常困难,即使这些服务顺利完成,管理和运维的成本也非常高,所以zookeeper以救世主的身份出现,解决上述技术难题,降低了分布式应用程序的开发难度和工作量,让程序员专注于分布式架构的设计。

三、zookeeper的三中部署方式

  1、独立部署模式,即部署在单台机器上的一个zookeeper服务,适用于学习、了解zookeeper基础功能。

  2、伪分布模式,即部署在一台机器上的多个(原则上大于3个)zookeeper服务,虚拟分布式的zookeeper集群,适用于学习、开发和测试,不适用生产环境。

  3、全分布式模式(复制模式),即在多台机器上部署zookeeper服务,真正的集群模式,适合于学习、开发和测试,可投入到生产环境中使用。

三、在什么场景下使用zookeeper

  1、集群管理

  ①、节点监控:集群环境下,有很多节点,节点可能因为网络故障连接不上,可能因为机器故障无法工作,要求保证集群中的节点都能正常工作,就需要把异常的节点从集群中屏蔽掉,这时使用zookeeper的短暂节点和watcher机制,可以很好的实现集群的管理。

  ②、领导者选举:集群是多个节点(可把节点理解为机器)协同工作,这是需要一个把控全局的领导者节点来接收外部请求、任务派发等,那么,领导者节点如何产生?领导者节点出现故障怎么处理?领导者选举是zookeeper最优秀的功能之一,如果当前领导者节点出现故障,zookeeper可在很短的时间内选举出新的领导者来接替故障领导者的工作。

  2、配置管理

  实际应用中,配置使应用变得灵活,但是在分布式应用下,需要到每一台机上面修改配置,维护配置则复杂很多,基于这种场景,把配置放在zookeeper的znode中,分布式应用的机器到zookeeper的znode中读取配置应用到系统中即可。此外,利用zookeeper的watcher机制,如果配置(znode)发生改变,zookeeper通知各个机器配置信息已经被修改,各机器通过刷新来获取到最新的配置。

  zookeeper还可以应用到很多场景,比如分布式锁、数据的发布和订阅、队列管理等等,此处就不一一介绍了。

四、zookeeper的性能

  zookeeper旨在提供高性能,但是zookeeper的性能如何呢?zookeeper官网提供了一份性能测试结果图,通过分析测试结果图,可以大概了解zookeeper的性能,如下图所示:

  

  从测试结果图得知测试分为5组,分别为3台服务器一组(暂且称为A组)、5台服务器一组(暂且称为B组)、7台服务器一组(暂且称为C组)、9台服务器一组(暂且称为D组)、13台服务器一组(暂且称为E组),观察到几个现象:

    ①、读取请求的百分比在60%之前,吞吐率为A>B>C>D>E。

    ②、读取请求百分比到达80%偏左侧一点,大概75%时,吞吐率开始发生变化,A组的吞吐率开始被其他组超越。

    ③、读取请求百分比到达约95%时,吞吐率发生逆转,约为E>D>C>B>A,读取请求百分比趋近于瓶颈时,zookeeper集群约庞大,满足的吞吐率约高。

    ④、zookeeper集群的吞吐率起点大约在10000左右,性能下限很高。

  结论:

    ①、zookeeper小规模集群也能提供较高的吞吐率,如果对吞吐率有较高要求时,可以通过新增zookeepe服务节点来满足需求。

    ②、随着zookeeper服务节点的增加,zookeeper的性能呈指数上升。

  这篇博文是zookeeper系列的第一篇,对zookeeper做一个简单的介绍,关于zookeeper的更多内容和实际操作,会在后续博文中详述。

  由于能力有限,如有不足和错误之处,还望不吝指出!

zookeeper系列之:zookeeper简介浅谈的更多相关文章

  1. zookeeper系列之六—zookeeper之应用

    http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3113923.html Zookeeper是hadoop的一个子项目,虽然源自hadoop ...

  2. 【Zookeeper系列】Zookeeper命令操作(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4031881.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他 ...

  3. 【Zookeeper系列】zookeeper面试题(转)

    原文链接:https://segmentfault.com/a/1190000014479433 1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是 ...

  4. 【Zookeeper系列】ZooKeeper一致性原理(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4138580.html 一.ZooKeeper 的实现 1.1 ZooKeeper处理单点故障 我们知道可以通过Zo ...

  5. 【Zookeeper系列】ZooKeeper机制架构(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4133784.html 一.ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control L ...

  6. 【Zookeeper系列】ZooKeeper管理分布式环境中的数据(转)

    原文地址:https://www.cnblogs.com/sunddenly/p/4092654.html 引言 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它 ...

  7. 【Zookeeper系列】ZooKeeper安装配置(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4018459.html 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪 ...

  8. 【Zookeeper系列】Zookeeper简单介绍(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技 ...

  9. zookeeper系列之一—zookeeper入门

    Zookeeper是什么? Zookeeper故名思议动物管理员,它是拿来管大象(Hadoop).蜜蜂(Hive).小猪(Pig)的管理员,Apache Hbase和Apache Solr以及Link ...

随机推荐

  1. 生命周期事件和 Global.asax 文件

    文章:IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述 该文章有介绍Application_Start方法

  2. [并查集] 1118. Birds in Forest (25)

    1118. Birds in Forest (25) Some scientists took pictures of thousands of birds in a forest. Assume t ...

  3. python selenium2 有关cookie操作实例及如何绕开验证码

    1.先看一下cookie是啥 cookie是访问web时服务器记录在用户本地的一系列用户信息(比如用户登录信息),以便对用户进行识别 from selenium import webdriver im ...

  4. Go 示例测试实现原理剖析

    简介 示例测试相对于单元测试和性能测试来说,其实现机制比较简单.它没有复杂的数据结构,也不需要额外的流程控制,其核心工作原理在于收集测试过程中的打印日志,然后与期望字符串做比较,最后得出是否一致的报告 ...

  5. BZOJ 1283: 序列

    1283: 序列 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 272  Solved: 151[Submit][Status][Discuss] D ...

  6. SDNnet PX Programmming Language

    写在前面 本篇是关于 SDNet PX Programming Language User Guide 其中「Introduction」 部分的一些翻译.理解以及我从其他方面看来的一些资料的整合.网上 ...

  7. USACO Section 1.5 Number Triangles 解题报告

    题目 题目描述 现在有一个数字三角形,第一行有一个数字,第二行有两个数字,以此类推...,现在从第一行开始累加,每次在一个节点累加完之后,下一个节点必须是它的左下方的那个节点或者是右下方那个节点,一直 ...

  8. VS2010 重命名文件:源文件名和目标文件名相同 的解决方案

    想要在“”解决方案资源管理器“”中修改一个已经写好的文件的文件名,如图: 在改了几次后就出现了如图的问题: 然而在“解决方案资源管理器”中并没有看到,于是我打开了工程在磁盘中的位置文件夹: 意外发现了 ...

  9. spark 调优——基础篇

    开发调优 调优概述 Spark性能优化的第一步,就是要在开发Spark作业的过程中注意和应用一些性能优化的基本原则.开发调优,就是要让大家了解以下一些Spark基本开发原则,包括:RDD lineag ...

  10. kafka 多线程消费

    一. 1.Kafka的消费并行度依赖Topic配置的分区数,如分区数为10,那么最多10台机器来并行消费(每台机器只能开启一个线程),或者一台机器消费(10个线程并行消费).即消费并行度和分区数一致. ...