一、简介

zookeeper 主要使用场景:分布式系统的分布式协同服务。协同工作就是通过某种方式,让着节点的信息能够同步和共享,依赖于进程间的通信。通信方式有俩种.

  • 通过网络进行信息共享

    现实工作中,leader在会议上会吧任务分配下去,组员通过leader的命令或者邮件知道自己要干什么。当有任务变化时,leader会单独告诉组员,或者再次召开会议。信息通过人与人的沟通直接完成传递。

  • 通过共享存储

现实中leader.吧项目上传到svn,组员拉取代码,然后干活。其中svn就是共享存储。

二、Zookeeper如何解决分布式系统面临的问题

  • 通过共享存储

    通过zookeeper实现分布式系统的协调,共享存储。zookeeper就像是svn,存储了任务分配、完成情况等共享信息。每个分布式节点订阅这些共享信息当主节点(组leader),对某个从节点分工信息做出改变时,相关订阅从节点会得到zookeeper的通知,获取最新的任务分配。完成工作后,把完成情况,存储到zookeeper.主节点订阅了完成情况,所以将会得到zookeeper的完工通知。把上图中的svn 和邮件信息合二为一,zookeeper代替。

三、基本概念

Zookeeper是分布式系统的分布式协同服务,也是一个典型的分布式一致性解决方案。基于他可以实现数据订阅/发布、负载均衡、命名服务、集群管理、分布式锁、和分布式队列等功能。

1、集群角色

通常在分布式系统中,构成集群的每一台机器都有自己的角色。最典型的就是Master/Slave模式(主备模式),

在zookeeper中没有沿用传统的主备模式。引入Leader、Follower、Observer三种角色。Zookeeper集群中的所有机器都通过Leader选举一台被称为Leader的机器,Leader服务器对外提供读写服务。Follower、Observer也可以对外提供读写服务,唯一的区别就是Observer不参与Leader选举的过程、不参与与写操作的过半写成功策略。因此Observer在不影响性能的情况下提升集群性能。

zookeeper 的写流程:

2、会话(Session)

session 指的是客户端会话,Zookeeper对外默认端口是2181,客户端启动的与服务器建立TCP连接,从第一次连接建立开始,客户端的生命周期也就开始了,通过心跳检测机制与服务器保持有效会话,也向Zookeeper服务器,发送请求并接受响应,同时还可以接受来着服务器Watcher的事件通知。

3、数据节点(Znode)

“节点”,在分布式系统中,指的是组成集群的每一台机器.在Zookeeper中集群节点分为俩类:

  1. 机器节点

    集群的机器

  2. 数据节点(Znode)

    Zookeeper将所有数据存储在内存中,数据模型是是一颗(Znode Tree),由 /进行分隔的路径,就是一个Znode ,例如:/app/p_1.每个Znode 都会存储自己的数据内容,和一系列属性信息

4、版本

Zookeeper 每个Znode 都会存储自己的数据内容,和一系列属性信息。对于Znode Zookeeper 会为其维护一个叫做Start的数据结构,Start记录了Znode 的三个数据库版本,分别是 version(当前Znode 版本)、cversion(Znode 子节点版本)、aversion(当前Znode ACL版本)

5、Watcher事件监听器

Wather(事件监听器),是 Zookeeper中一个很重要的特性, Zookeeper允许用户在指定节点上注册 一些 Watcher,并且在一些特定事件触发的时候,Zookeeper服务罐会将事件通知到感兴趣的客户端 该机制是 Zookeeper实现分布式协调服务的重要特性

6、ACL

Zookeeper采用ACL( Access Control Lists)策略来进行权限控制,其定义了如下五种权限 CREATE:创建子节点的权限 READ:获取节点数据和子节点列表的权限 WRTE:更新节点数据的权限 DELETE:制除子节点的权限 ADMN:设置节点ACL的权限 其中需要注意的是, CREATE和 DELETE这两种权限都是针对子节点的权限控制

三、Zookeeper简介的更多相关文章

  1. Zookeeper简介与安装

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

  2. Zookeeper简介与集群搭建

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

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

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

  4. Zookeeper简介及使用

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

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

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

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

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

  7. ZooKeeper简介

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

  8. Mybatis sql映射文件浅析 Mybatis简介(三) 简介

    Mybatis sql映射文件浅析 Mybatis简介(三)   简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML ...

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

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

  10. Zookeeper简介及安装(一)

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

随机推荐

  1. 《GNU_makefile》第六章——变量

    makefile中的变量特征和C语言中的宏一样. 变量使用 =,:=,?= 和 define 定义 一些特殊的自动化变量:$< $@ $^ $* 1.变量的引用 通过 $(VAR) 或 ${VA ...

  2. swlib

    Swoole人性化组件库 ~ Swoole Humanization Component Library

  3. python笔记(1)---数据类型

    数据类型 基本的五大数据类型 对python中的变量有如下的五种基本的数据类型: Number数字 list列表 Tuple元组 string字符串 Dictionary字典 1.Number [注意 ...

  4. java面试必问:多线程的实现和同步机制,一文帮你搞定多线程编程

    前言 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种资源和状态信息,包括打开的文件.子进程和信号处理. 线 ...

  5. TA-Lib技术指标分析

    import talib as tb from talib import * print(tb.get_functions()) print(tb.get_function_groups()) 指标大 ...

  6. Camtasia中对录制视频进行编辑——音效

    市场上有很多的视频处理软件,形形色色的软件往往会使人眼花缭乱,而对于那些短视频的制作者来说,拥有一款好的视频处理软件会让自己的视频收获更多的点赞.那么今天我便给大家推荐一款同时具有录屏和编辑视频功能的 ...

  7. 追星女孩必备!使用Camtasia制作爱豆视频

    制作爱豆视频,我用得比较多的是Camtasia(Windows)教程录制.因为这款软件操作简单,功能强大,用起来相当顺手呢.而且更重要的是,Camtasia有录屏功能,电脑存量不足的情况下,真的很好用 ...

  8. 苹果电脑怎么给浏览器安装Folx扩展程序

    Folx是一款MacOS专用的老牌综合下载管理软件,它的软件界面简洁,应用简单方便,下载管理及软件设置灵活而强大.Folx不但能够进行页面链接下载.Youtube视频下载,而且还是专业的BT下载工具. ...

  9. 使用iMindMap思维导图软件的活动策划模板制定策划方案

    活动策划不单单是一个头脑风暴的过程,更是一个整合各项资源.条件的过程.因此我们可以合理的使用思维导图软件来做活动策划.iMindMap(Windows系统)思维导图软件提供了快捷而方便的活动策划模板, ...

  10. Java集合【4】-- iterable和Iterator的异同分析详解

    目录 一.iterator介绍 二.iterable接口 三.为什么有Iterator还需要Iterable 一.iterator介绍 iterator接口,也是集合大家庭中的一员.和其他的Map和C ...