Zookeeper概论(对zookeeper的概论、原理、架构等的理解)

一、概论

  Zookeeper是一个分布式的、开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是hadoop和hbase

的重要组件。它是一个为分布式应用提供一致性服务的软件。提供的功能包括:配置维护、名字服务、分布式服务、组服务等。

  Zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

  Zookeeper包含一个简单的原语集,提供Java和C的接口。

  Zookeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在Zookeeper-3.4.3\src\recipes。其中分布锁和队列

有Java和C两个版本,选举只有Java版本。

二、原理

  Zookeeper是以Fast Paxos算法为基础的,paxos算法存活在活锁的问题,即当有多个proposer交错提交时,有可能互相排

斥导致没有一个proposer能提交成功,而Fast Paxos 做了一些优化,通过选举产生一个leader,只有leader才能提交proposer,

具体算法可见Fast Paxos。因此,要想弄懂Zookeeper首先要对Fast Paxos有所了解。

  Zookeeper的基本运转流程:

  1、选举Leader。

  2、同步数据。

  3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。

  4、Leader要具有最高的zxid。

  5、集群中大多数的机器得到响应并follow选出的Leader。

三、架构:

    

四、功能

  Zookeeper分布式服务框架是Apache Hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问

题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

五、数据结构

  Zookeeper这种数据结构有如下特点:

  1、每个子项目如NameService都被称作为znode,这个znode是它所在的路径唯一标识,如Server1这个znode的标识

为/NameService/Server1。

  2、znode可以有子节点目录,并且每个znode可以存储数据,注意EPHEMERAL类型的目录节点不能有子节点目录。

  3、znode是有版本的,每个znode中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据。

  4、znode可以是临时节点,一旦这个znode的客户端和服务器失去联系,这个znode也将自动删除,Zookeeper的客户端和

服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为session,如果znode是临时节点,这个

session失效,znode也就删除了。

  5、znode的目录名可以自动编号,如App1已经存在,再创建的话,将会自动命名为App2。

  6、znode可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,

这个是Zookeeper的核心特性,Zookeeper的很多功能都是基于这个特性实现的。

Zookeeper概论(对zookeeper的概论、原理、架构等的理解)的更多相关文章

  1. Zookeeper原理架构与搭建

    一.Zookeeper到底是什么!? 学一个东西,不搞明白他是什么东西,哪还有心情学啊!! 首先,Zookeeper是Apache的一个java项目,属于Hadoop系统,扮演管理员的角色. 然后看到 ...

  2. ZooKeeper教程资源收集(简介/原理/示例/解决方案)

    菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之[统一配置管理] ZooKe ...

  3. 【Java面试】Zookeeper中的Watch机制的原理?

    一个工作了7年的粉丝,遇到了一个Zookeeper的问题. 因为接触过Zookeeper这个技术,不知道该怎么回答. 我说一个工作了7年的程序员,没有接触过主流技术,这不正常. 于是我问了他工资以后, ...

  4. Zookeeper 1、Zookeeper 定义与工作原理

    1.什么是Zookeeper » Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务 » 它包含一个简单的原语集,分布式应用程序可以基于它实现同步 ...

  5. Zookeeper的Watcher 机制的实现原理

    基于 Java API 初探 zookeeper 的使用: 先来简单看一下API的使用: public class ConnectionDemo { public static void main(S ...

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

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

  7. zookeeper 负载均衡 核心机制-实现原理 包含ZAB协议(滴滴,阿里面试)

    面试也经常问kafka的原理,以及zookeeper与kafka原理的区别:kafka 数据一致性-leader,follower机制与zookeeper的区别: zookeeper是如何实现负载均衡 ...

  8. 启动Dubbo项目注册Zookeeper时提示zookeeper not connected异常原理解析

    文/朱季谦 遇到一个很诡异的问题,我在启动多个配置相同zookeeper的Dubbo项目时,其他项目都是正常启动,唯独有一个项目在启动过程中,Dubbo注册zookeeper协议时,竟然出现了这样的异 ...

  9. Zookeeper【概述、安装、原理、使用】

    目录 第1章 Zookeeper入门 1.1 概述 1.2 特点 1.3 数据结构 1.4应用场景 第2章 Zookeep安装 2.1 下载地址 2.2 本地模式安装 1. 安装前准备 2. 配置修改 ...

随机推荐

  1. Siverlight 导出Excel (经测试通过 Vs2010 ,silverlight5 )

    网上搜了下,很多代码都有各种问题,自己抽时间整理了一下这个导出 using System; using System.Net; using System.Windows; using System.W ...

  2. Retrofit源码研究

    2016-05-06 15:35:27 最近抽空研究了一下Retrofit源码,包括API使用.源码结构.使用到的设计模式.SDK的架构设计.作者设计/实现思路等,会形成一系列文章. 以前Retrof ...

  3. c# 第一个实例 通哥

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. 破解Outlook数据文件密码/PST访问密码

    不少人会经常用outlook,邮件多的时候可能不定期导出一个PST文件,为安全起见,给PST文件设置访问密码,可是时间长了,难免忘记,怎么办呢?不用担心,你自己就可以解决,无论是Outlook97.O ...

  5. SparkStreaming运行出现 java.lang.NoClassDefFoundError: org/apache/htrace/Trace 错误

    1.简介 最近在摸索利用sparkstreaming从kafka中准实时的读取数据,并将在读取的过程中,可以做一个简单的分析,最后将分析结果写入hbase中. 2.出现的问题 (1)将从kafka中读 ...

  6. C语言程序设计第11次作业

    一.本次课主要内容: 本章主要介绍指针相关的基础知识,本节课的主要如下 (1)通过示例"密码开锁"引入指针的概念和主要知识点,分析了密码开锁的过程来说明变量.内存单元和地址之间的关 ...

  7. 触发Full GC执行的情况

    除直接调用System.gc外,触发Full GC执行的情况有如下四种. 1. 旧生代空间不足 旧生代空间只有在新生代对象转入及创建为大对象.大数组时才会出现不足的现象,当执行Full GC后空间仍然 ...

  8. 一次偶然的Java内存溢出引发的思考

    据说一次SQL查询返回太多数据,会引起服务器内存溢出. 不过,我现在碰到的情况是,调用一个Postgresql 存储过程,很复杂,那么在其中有很多raise notice这样的调试语句,如果碰巧有个死 ...

  9. Enable rsh on MAC OS with command line

    1. Enable rsh on macos. 1). os version (10.0) Enabling the "Allow remote login" option tur ...

  10. android中所有颜色大全

    < ?xml version="1.0" encoding="utf-8" ?>       < resources>< colo ...