一、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. What is ASP.NET SignalR

    什么是ASP.NET SignalR ASP.NET SignalR是ASP.NET开发人员的新库,它使得为应用程序添加实时Web功能变得非常简单. 什么是“实时网络”功能?它能够让您的服务器端代码实 ...

  2. C++模板常用功能讲解

    前言 泛型编程是C++继面向对象编程之后的又一个重点,是为了编写与具体类型无关的代码.而模板是泛型编程的基础.模板简单来理解,可以看作是用宏来实现的,事实上确实有人用宏来实现了模板类似的功能.模板,也 ...

  3. 关于Delphi内存表的使用说明

    关于Delphi内存表的使用说明: 1.建立临时表  数据输入是开发数据库程序的必然环节.在Client/Server结构中,客户端可能要输入一批数据后,再向服务器的后台数据库提交,这就需要在本地(客 ...

  4. Everyone is tester

    有一本书叫<人人都是产品经理>,作者在书中介绍了在做产品的过程中学到的思维方式和做事方式,受到行业大众的认可 作为一名测试老鸟,我想说,其实Everyone is tester     为 ...

  5. Codeforces Round#509 Div.2翻车记

    A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...

  6. 基于element-ui的后台系统表格、dialog、筛选、自定义按钮、分页的一次性封装

    方便基础业务开发封装的一套组件,基于vue2.5.x和element-ui,可以通过配置自动生成表格展示,表格新增.编辑功能.分页.筛选项.自定义显示表格数据等功能. 先上演示图片 --------- ...

  7. linux 配置文件(启动文件、环境文件)启动顺序

    1.登录shell 登录shell时,linux会按一定规则读取启动几个配置文件: /ect/profile $HOME/.bash_profile $HOME/.bashrc $HOME/.bash ...

  8. 小Z的袜子(hose) HYSBZ - 2038 (莫队算法)

    原文地址:http://hzwer.com/2782.html 「BZOJ2038」[2009国家集训队] 小Z的袜子(hose) 2014年4月26日13,34721 Description 作为一 ...

  9. office 格式刷双击无法启用连刷模式

    1.问题所在是双击被设置太快了导致office无法接受,请设置成下图中的中等速度即可. 2.可使用快捷键代替 Ctrl+Shift+c(复制格式)Ctrl+Shift+v(粘贴格式)

  10. loj2538 「PKUWC2018」Slay the Spire 【dp】

    题目链接 loj2538 题解 比较明显的是,由于强化牌倍数大于\(1\),肯定是能用强化牌尽量用强化牌 如果强化牌大于等于\(k\),就留一个位给攻击牌 所以我们将两种牌分别排序,企图计算\(F(i ...