一:背景        
        --->随着互联网技术的高速发展,企业对计算机系统的计算,存储能力要求越来越高,最简单的明证就是出现一些诸如:高并发,海量存储这样的词汇。在这样的背景下,单纯依靠少量高性能主机来完成计算任务已经不能满足企业需求,企业的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

一:ZooKeeper简介的更多相关文章

  1. ZooKeeper简介

    本文中,我们将对ZooKeeper进行介绍.简单地说,ZooKeeper是一个用来在构成应用的各个子服务之间进行协调的一个服务. 由于其本身并没有特别复杂的机制,因此我们将会把更多的笔墨集中在如何对Z ...

  2. Zookeeper简介与安装

    Zookeeper:A Distributed Coordination Service for Distributed Applications. 一.Zookeeper简介 众所周知,协同服务是分 ...

  3. Zookeeper简介与集群搭建

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

  4. Zookeeper简介与集群搭建【转】

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

  5. Zookeeper简介及单机、集群模式搭建

    1.zookeeper简介 一个开源的分布式的,为分布式应用提供协调服务的apache项目. 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 设计非常易于编程,它使用的是 ...

  6. Zookeeper简介及使用

    一.Zookeeper简介 1.zookeeper简介 动物管理员 Apache ZooKeeper致力于开发和维护开源服务器,实现高度可靠的分布式协调. 2.什么是ZooKeeper? ZooKee ...

  7. ZooKeeper学习之路(一)—— ZooKeeper简介及核心概念

    一.Zookeeper简介 Zookeeper是一个开源的分布式协调服务,目前由Apache进行维护.Zookeeper可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调/通知. ...

  8. ZooKeeper系列(一)—— ZooKeeper 简介及核心概念

    一.Zookeeper简介 Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护.Zookeeper 可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调 ...

  9. Zookeeper简介及安装(一)

    1 Zookeeper入门1.1 概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景提供的服务包括:统一命名服务 ...

  10. 第1章 分布式系统概念与ZooKeeper简介

    ZooKeeper分布式专题与Dubbo微服务入门 第1章 分布式系统概念与ZooKeeper简介 1-1 zookeeper简介 1-2 什么是分布式系统 略 1-3 分布式系统的瓶颈以及zk的相关 ...

随机推荐

  1. mysql集群

    http://blog.chinaunix.net/uid-20586655-id-291471.html

  2. ios开发--编码格式

    1.url编码 ios中http请求遇到汉字的时候,需要转化成UTF-8,用到的方法是: NSString * encodingString = [urlString stringByAddingPe ...

  3. 对话框上右下角显示resize icon(可以拖动改变对话框的大小)(在WM_CREATE的时候,增加WS_THICKFRAME风格)

    CStatusBar m_StatusBar;  // 成员变量 // 全局变量 static UINT auIDStatusBar[] = { ID_SEPARATOR }; //在对话框类的WM_ ...

  4. WordPress主题制作教程2:导航菜单制作

    实现自定义菜单,需要用到的函数是wp_nav_menu(); 在主题目录下的functions.php的 <?php ….. ?> 之间,添加以下菜单注册代码,这样你就可以在主题文件中使用 ...

  5. Ubuntu 升级内核

    1. 升级下 sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove 2 ...

  6. activeMQ主要的几类集群部署方式

    官方主从实现的文档:http://activemq.apache.org/masterslave.html   一.activeMQ主要的几类部署方式比较 1.默认的单机部署(kahadb) acti ...

  7. 【USACO】Transformations

    A square pattern of size N x N (1 <= N <= 10) black and white square tiles is transformed into ...

  8. Vim 新用法

    daw , delete a word cw , delete from cursor to the end then insert mode a word 移动: f ; Aa Oo Cc Ii S ...

  9. 串口log

    使用windows自带的超级终端: 可从开机log开始保存: -----

  10. R语言串行与并行Apply用法

    串行 APPLY<- function(m){ mTemp <- apply(m, 2, mysort) return(mTemp)} snowfall包的并行 SNOWFALL<- ...