一:ZooKeeper简介

一:背景        
        --->随着互联网技术的高速发展,企业对计算机系统的计算,存储能力要求越来越高,最简单的明证就是出现一些诸如:高并发,海量存储这样的词汇。在这样的背景下,单纯依靠少量高性能主机来完成计算任务已经不能满足企业需求,企业的IT架构逐步从集中式向分布式过渡,所谓的分布式:把一个计算任务分解成若干个计算单元,并且分派到若干不同的计算机中去执行,然后汇总计算结果的过程。
        ---->ZooKeeper 是一个开源分布式协调服务,独特的Leader-Follower的集群结构,很好的解决了分布式单点问题。目前主要用于诸如:统一命名服务、配置管理、锁服务、集群管理等场景

二:zookeeper的概念
        --->ZooKeeper是针对分布式应用的高性能协调服务,是高效可靠的协同工作系统
        --->提供的功能包括配置维护,名字服务,分布式同步,组服务。
        --->ZooKeeper的目标就是封装好复杂,易出错的关键服务。将简单易用的接口和性能高效,功能稳定的系统提供给用户
        --->ZooKeeper是Hadoop的正式子项目。高性能。
        --->分布式协调服务,它是解决分布式数据一致性问题。
      
三:zookeeper的服务的应用
       A顺序一致性
                (1)从一个客户端发起一个事务请求,最终会严格按照发起的顺序被应用到Zookeeper中
       B原子性
                (1)所有事务请求的处理结果,在整个集群的所有机器上应用情况是一致的。
        C单一视图
                   (1)无论客户端,链接到zookeeper集群中哪个服务上,看到的服务端数据都是一样的。
          D可靠性
                (1)一旦服务端完成了客户端一个事务,并响应了客户端,对服务端的状态改变是会保存下来的。除非另一个事务对它做了修改。
        E实时性
                (1)zookeeper保证在一段时间内客户端最终一定能从服务端读取最新的数据状态
       F高性能
                (1)吞吐量很大,一个3台机子的zookeeper集群可以达到12-13万的qps

四:zookeeper的服务的应用场景
(1)发布定阅。
                --->一方把数据发布出来,另一方通过某种手段可以得到这些数据。
                --->通常数据订阅有两种方式:推模式和拉模式,推模式一般是服务器主动向客户端推送消息。拉模式是客户端主动去服务器获取数据(通常采用定时轮询的方式)
                --->zk集群采用推拉模式相结合。发布者将数据发布到zk集群节点上,订阅者通过一定的方法告诉服务器,我对哪儿节点的数据感兴趣,那服务器在这些节点的数据发生变化时,就通知客户端,客户端得到通知后可以去服务器获取数据信息。
        
(2)负载均衡
(3)命名服务
(4)分布式协调/通知
        --->心跳检测
(5)集群管理
(6)Master选举
(7)分布式锁
(8)分布式队列

五:zookeeper的设计目标
zookeeper致力于提供一个高性能,高可用,且具有严格的顺序访问控制能力(主要是写操作的严格顺序性)的分布式协调服务。高性能使得Zookeeper能够应用于那些对系统吞吐有明确要求的大型分布式系统中,高可用使得分布式的单点问题得到了很好的解决,而严格的顺序访问控制使得客户端能够基于Zookeeper实现一些复杂的同步原语。

●目标一:简单的数据模型
--->Zookeeper使得分布式程序能够通过一个共享的,树型结构的名字空间进行相互协调。这里所说的树型结构的名字空间,是指Zookeeper服务器内存中的一个数据模型,尤其一系列被称为ZNode的数据节点组成,总的来说,其数据模型类似于一个文件系统,而ZNode之间的层级关系,就像文件系统的目录结构一样。不过和传统的磁盘文件系统不同的是,Zookeeper将全量数据存储在内存中,以此来实现提高服务器吞吐,减少延迟的目的。

●目标二:可以构建集群
--->一个ZooKeeper集群通常由一组机器组成,一般3~5台机器就可以组成一个可用的ZooKeeper集群了

--->组成Zookeeper集群的每台机器都会在内存中维护当前的服务器状态,并且每台机器之间都互相保持着通信。值得一提的是,只要集群中存在超过一半的机器能够正常工作,那么整个集群就能够正常对外服务。
--->Zookeeper的客户端程序会选择和集群中任意一台机器共同来创建一个TCP连接,而一旦客户端和某台Zookeeper服务器之间的链接断开后,客户端会自动链接到集群中的其他机器。

●目标三:顺序访问
--->对于来自客户端的每个更新请求,Zookeeper都会分配一个全局唯一的递增编号,这个编号反映了所有事务操作的先后顺序,应用程序都可以使用ZooKeeper的这个特性来实现更高层次的同步原语。

●目标四:高性能
--->由于ZooKeeper将全量数据存储在内存中,并直接服务于客户端的所有非事务请求,因此它尤其适用于以读操作为主的应用场景,作者曾经一3台3.4.3版本的ZooKeeper服务器组成集群进行性能压测,100%读请求的场景下压测结果是12-13W的QPS

时间: 2024-10-12 13:22:35

一:ZooKeeper简介的相关文章

Zookeeper简介与集群搭建

Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少量信息.Hadoop.Storm.消息中间件.RPC服务框架.分布式数据库同步系统,这些都是Zookeeper的应用场景. Zookeeper集群中节点个数一般为奇数个(>=3),若集群中Master挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务. 客户端发起事务请求,事务请

Dubbo与Zookeeper 简介

转自http://blog.csdn.net/congcong68/article/details/41113239 首先说一下Dubbo解决什么问题: (1)当服务越来越多时,服务Url配置管理变得非常困难,F5的硬件负载均衡器的单点压力也越来越大.此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明. (2)服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,需要自动画出应用间的依赖关系图,以帮助架构师理清理关系. (3)服务的调用量越来越大,服务的容量问题就暴露

dubbo + zookeeper 简介和部署

Dubbo简介: Dubbo 是阿里巴巴公司开源(以前不开源)的一个高性能优秀的服务框架, 使得应用可通过高性能的 RPC 实现服务的输入和输出功能, 可以和spring框架无缝集成. 那么这里, 啥是RPC啊? 这么来说吧, 业务逻辑层和展现层不在同一台电脑上, 甚至不在同一个城市, 当我展现层想调用逻辑层的东西, 怎么调? RPC 就是为了解决这个问题的. 你说将逻辑层做成了接口, 通过http调用接口的方式, 确实可以调用得到, 但是速度和性能没有 RPC 高. 度娘解释: RPC (Re

Zookeeper简介和安装(二)

一.简介: Zookeeper是一个分布式协调服务,提供的服务如下: 命名服务:类似于DNS,但仅对于节点 配置管理:服务配置信息的管理 集群管理:Dubbo使用Zookeeper实现服务治理 分布式锁:选举一个leader,这样某一时刻只有一个服务在干活,当leader出问题时释放锁,立即切到另一个服务 二.下载: 点这里 三.伪分布式集群搭建: 1.进入C:\zookeeper-3.3.6\conf目录,将zoo_sample.cfg拷贝成3份,分别为:zoo1.cfg.zoo2.cfg.z

ZooKeeper: 简介, 配置及运维指南

1. 概览 ZooKeeper是一个供其它分布式应用程序使用的软件, 它为其它分布式应用程序提供所谓的协调服务. 所谓的协调服务, 是指ZooKeeper的如下能力 naming 命名 configuration management 配置管理 synchronization 同步 group service 分组服务 上面四个功能可能现在不太好说清, 但大致上目前你需要明白ZooKeeper就是为其它分布式应用程序提供一些基础功能的程序就好了. 我们以其中的配置管理为例. 假设你在写一个可横向

Zookeeper简介与使用

1.   Zookeeper概念简介: Zookeeper是一个分布式协调服务:就是为用户的分布式应用程序提供协调服务 A.zookeeper是为别的分布式程序服务的 B.Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务) C.Zookeeper所提供的服务涵盖:主从协调.服务器节点动态上下线.统一配置管理.分布式共享锁.统一名称服务-- D.虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能: 管理(存储,读取)用户程序提交的数据: 并为

Dubbox与Zookeeper简介及入门小案例

Dubbox 一:简介       Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox.        Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.说白了就是个远程服务调用的分布式框架.  节点角色说明:? Provider: 暴露服务的服务提供方.? Consumer

01.ZooKeeper简介

什么是ZooKeeper Zookeeper是用Java开发的一个分布式协调服务,就是为用户的分布式应用程序提供协调服务.应用程序可以在Zookeeper集群上注册当前的节点数据,当节点数据发生更改时,ZooKeeper还会通知应用程序. ZooKeeper的应用场景 配置文件管理(如:Solor集群的索引配置文件) 服务器状态感知(告诉客户端有哪些服务器可用) 主从协调(服务器内部选举出master节点) 分布式共享锁 统一名称服务 ZooKeeper特性 ZooKeeper是为别的分布式程序

hadoop核心组件zookeeper简介与特点

zookeeper是一个针对大型分布式系统的可靠协调系统. 1)它提供的功能包括:配置维护,名字服务,分布式同步,组服务等: 2)它的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效,功能稳定的系统提供给用户: 特点: 1,最终一致性:为客户端展示同一试图 2,可靠性:如果一条消息被一台服务器接受,那么它将被所有的服务器接受. 3,实时性:zookeeper不能保证两个客户端同时得到刚刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口. 4,等待无关(wait-f

zookeeper 简介

一直对zookeeper的应用和原理比较迷糊,今天看一篇文章,讲得很通透,分享如下: 场景一 有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最多3亿份邮件需要下载到服务器中(不含附件和正文).用20台机器划分计算的压力,从 多个不同的网路出口进行访问外网,计算的压力得到缓解,那么每台机器的计算压力也不会很大了. 通过我们的讨论和以往的经验判断在这场景中可以实现并行计算,但我们还期望能对并行计算的节点进行动态的添加/删除,做到