三、Zookeeper简介
一、简介
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中集群节点分为俩类:
机器节点
集群的机器
数据节点(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简介的更多相关文章
- Zookeeper简介与安装
Zookeeper:A Distributed Coordination Service for Distributed Applications. 一.Zookeeper简介 众所周知,协同服务是分 ...
- Zookeeper简介与集群搭建
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
- Zookeeper简介与集群搭建【转】
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
- Zookeeper简介及使用
一.Zookeeper简介 1.zookeeper简介 动物管理员 Apache ZooKeeper致力于开发和维护开源服务器,实现高度可靠的分布式协调. 2.什么是ZooKeeper? ZooKee ...
- ZooKeeper学习之路(一)—— ZooKeeper简介及核心概念
一.Zookeeper简介 Zookeeper是一个开源的分布式协调服务,目前由Apache进行维护.Zookeeper可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调/通知. ...
- ZooKeeper系列(一)—— ZooKeeper 简介及核心概念
一.Zookeeper简介 Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护.Zookeeper 可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调 ...
- ZooKeeper简介
本文中,我们将对ZooKeeper进行介绍.简单地说,ZooKeeper是一个用来在构成应用的各个子服务之间进行协调的一个服务. 由于其本身并没有特别复杂的机制,因此我们将会把更多的笔墨集中在如何对Z ...
- Mybatis sql映射文件浅析 Mybatis简介(三) 简介
Mybatis sql映射文件浅析 Mybatis简介(三) 简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML ...
- Zookeeper简介及单机、集群模式搭建
1.zookeeper简介 一个开源的分布式的,为分布式应用提供协调服务的apache项目. 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 设计非常易于编程,它使用的是 ...
- Zookeeper简介及安装(一)
1 Zookeeper入门1.1 概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景提供的服务包括:统一命名服务 ...
随机推荐
- 二:Redis:(REmote DIctionary Server)远程字典服务器
Redis是完全开源免费的,用C语言编写的,遵循BSD协议,是一个高性能的(key-value)分布式内存数据库,基于内存运行,并支持持久化的NOSQL数据库,是当前最热门的NOSQL数据库之一,也被 ...
- Elasticsearch 第八篇:数据类型 Array、Nested、Object 的设计与应用
h2.post_title { background-color: rgba(43, 102, 149, 1); color: rgba(255, 255, 255, 1); font-size: 1 ...
- Java8 方法引用和构造方法引用
如果不熟悉Java8新特性的小伙伴,初次看到函数式接口写出的代码可能会是一种懵逼的状态,我是谁,我在哪,我可能学了假的Java,(・∀・(・∀・(・∀・*),但是语言都是在进步的,就好比面向对象的语言 ...
- yum 方式安装mysql (完整记录)
2016-04-07 学习笔记,源代码安装比较麻烦,还是要尝试一下yum安装和rpm方式安装 一.检查系统是否安装老版本,有的话干掉 #yum list installed | grep mysqlm ...
- bWAPP----SQL Injection (GET/Search)
SQL Injection (GET/Search) 输入单引号 报错,在%'附近出错,猜测参数被 '% %'这种形式包裹,没有任何过滤,直接带入了数据库查询 输入order by查询列 union ...
- 《Machine Learning in Action》—— 懂的都懂,不懂的也能懂。非线性支持向量机
说在前面:前几天,公众号不是给大家推送了第二篇关于决策树的文章嘛.阅读过的读者应该会发现,在最后排版已经有点乱套了.真的很抱歉,也不知道咋回事,到了后期Markdown格式文件的内容就解析出现问题了, ...
- 怎么借助CrossOver安装想要的Windows程序
面对安装双系统时的繁琐步骤,以及虚拟机软件那庞大的体积,CrossOver的出现,让一切都变得简单起来. CrossOver自带的一系列的Windows应用,涵盖游戏软件.办公软件.设计软件等多个种类 ...
- 微课制作软件Camtasia中如何添加并编辑字幕?
除了能录制视频以外,Camtasia还能直接把录制下来的视频进行剪辑,并添加视频字幕等等一些后期效果.今天我们就来看一看字幕的添加方法. 导入视频 微课制作软件Camtasia录制的视频,默认在软件& ...
- Arduion学习(一)点亮三色发光二极管
这是我接触Arduion以来第一个小实验 实验准备: 1.查阅相关资料,了解本次实验所用到的引脚.接口的相关知识. 2.准备Arduion板(本次实验所用到的型号为mega2560).三色发光二极管. ...
- LeetCode 038 Count and Say
题目要求:Count and Say The count-and-say sequence is the sequence of integers beginning as follows:1, 11 ...