学习Zookeeper需要了解的专业名词
一、Zookeeper的集群角色
Leader:该角色是整个zookeeper集群工作机制中的核心
Follower:该角色是zookeeper集群状态的跟随者
Observer:在集群中充当观察者的角色
(这三类角色的具体使用会在后面的博客中详细介绍)
二、会话
会话是指客户端与zookeeper服务器的连接,zookeeper中的会话叫session,客户端靠与服务器建立一个TCP长连接来维持一个session,通过这个连接,客户端能够与zookeeper服务器保持有效的通话,也能向zookeeper集群发起请求并得到响应。
三、数据节点
zookeeper主要有两种节点
(1)集群中的一台机器称为一个节点
(2)数据模型中的数据单元Znode,分为持久节点和临时节点。zookeeper的数据模型就是一棵树,树的节点是Znode,Znode中可以保存信息(和文件系统的目录树一样,ZooKeeper树中的每个节点可以拥有子节点)
四、版本
zookeeper对于版本的概念主要有以下三种:
悲观锁:悲观锁又叫悲观并发锁,是数据库中一种非常严格的锁策略,具有强烈的排他性,能够避免不同事务对同一数据并发更新造成的数据不一致性,在上一个事务对数据的操作没有完成之前,下一个事务不能访问相同的资源。悲观锁适合数据更新竞争非常激烈的场景。
乐观锁:相比悲观锁,乐观锁应用的场景更加广泛。悲观锁简单的认为两个事务访问同一笔数据的时候一定会互相干扰,所以粗暴的采用了强烈排他的形式来控制并发操作。而乐观锁认为多个事务访问相同资源的场景是很少见的,不必在事务操作期间进行严格的并发控制。但是乐观锁也是一种锁,也是一种机制,肯定会有对并发的其他处理方式,那这个方式是怎样的呢?对于数据库来说,通常的做法是在每个表中增加一个version字段,事务修改数据前首先读出数据,当然也会把版本号读出来,然后把这个读出来的version字段的值,加入到更新语句的where条件中。比如:读出来的version值为1,则可以将更新语句这样写,update 表名 set 字段=xxx where id = 1 and version = 1,如果更新失败了说明其他事务已经对该资源做了修改,那么系统需要抛出异常给客户端,客户端通过一定的机制进行重试处理。
五、watcher
watcher(事件监听器):zookeeper允许用户在指定的节点上去注册事件监听器watcher,在服务端数据节点发生变化时,zookeeper会把该变化通知给感兴趣的客户端(即订阅了该服务端节点的客户端)
六、ACL权限控制
ACL(Access Control Lists):zookeeper集群中支持各种类型的权限控制,主要有以下几种:
学习Zookeeper需要了解的专业名词的更多相关文章
- javascript各种专业名词
刚开始学javascript经常看到各种专业名词,在此整理一下个人的学习笔记: 直接量 直接量——就是程序中直接使用的数据值,如:88 //数字(String)"hello world ...
- Android开发专业名词及工具概述
前言: 系统的学习下Android开发中涉及到的一些专业名词 和Android开发工具 名词: 一.SDK(Software Development Kit) 软件开发工具包:一般都是一些软件工程师为 ...
- [专业名词·硬件] 2、DC\DC、LDO电源稳压基本常识(包含基本原理、高效率模块设计、常见问题、基于nRF51822电源管理模块分析等)·长文
综述先看这里 第一节的1.1简单介绍了DC/DC是什么: 第二节是关于DC/DC的常见的疑问答疑,非常实用: 第三节是针对nRF51822这款芯片电源管理部分的DC/DC.LDO.1.8的详细分析,对 ...
- 学习 zookeeper
1.zookeeper是什么 zookeeper是hadoop的分布式协调服务.主要作用是对hadoop的集群节点进行监控.但是由于其功能的单一而去不依赖hadoop其他框架,所以不局限在hadoop ...
- 一脸懵逼学习Zookeeper(动物园管理员)---》高度可靠的分布式协调服务
1:Zookeeper是一个分布式协调服务:就是为用户的分布式应用程序提供协调服务 A.zookeeper是为别的分布式程序服务的 B.Zookeeper本身就是一个分布式程序(只要有半数以上节点存活 ...
- zookeeper 学习 zookeeper下载部署
下载 http://mirror.bit.edu.cn/apache/zookeeper/ 校验 解压后得到zookeeper-3.4.10.jar,使用md5sum zookeeper-3.4.10 ...
- 【转】Zookeeper学习---zookeeper 选举机制介绍
[原文]https://www.toutiao.com/i6593162565872779784/ zookeeper集群 配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的 ...
- 学习Zookeeper之第3章Zookeeper内部原理
第 3 章 Zookeeper 内部原理 3.1 选举机制 3.2 节点类型 3.3 stat 结构体 3.4 监听器原理 1)监听原理详解 2)常见的监听 3.5 写数据流程 第 3 章 Z ...
- 学习Zookeeper之第2章Zookeeper安装
第 2 章 Zookeeper安装 2.1 本地模式安装部署 2.2 配置参数解读 第 2 章 Zookeeper安装 2.1 本地模式安装部署 1)安装前准备: (1)安装 jdk (2)通过 fi ...
随机推荐
- selenium运行火狐报错FirefoxDriver : Unable to connect to host 127.0.0.1 on port 7055
摘要: 这是个常见的启动firefoxdriver的问题,具体的错误日志如下,其实原因很简单,就是你的Selenium版本和firefox 不兼容了. Firefox 版本太高了, 请及时查看你安装的 ...
- Differential Geometry之第十章极小曲面
第十章.极小曲面 1.极小图 Animation showing the deformation of a helicoid into a catenoid. Animation of Scherk' ...
- linux下解压 tar.bz2
tar xvfj xxx.tar.bz2 转自: http://www.360doc.com/content/12/0907/16/8006573_234845810.shtml
- 使用 Estimator 构建卷积神经网络
来源于:https://tensorflow.google.cn/tutorials/estimators/cnn 强烈建议前往学习 tf.layers 模块提供一个可用于轻松构建神经网络的高级 AP ...
- easyui上次图片
easyuiForm提交: 前台代码: <form id="importFileForm" method="post" enctype="mul ...
- 剑指 offer set 27 赋值运算符函数
要求为类 CMyString 定义赋值运算符函数. 类的定义如下 class CMyString { public: CMyString(char* pData = NULL; ) CMyString ...
- Sokect异步连接发送
客户端 static void Main(string[] args) { Console.WriteLine("this is a Client!"); Socket clien ...
- angular 2+ 路由守卫
1. 定义接口名称 /domain/login-guard.ts export interface LoginGuard { data: any; msg: string; status: boole ...
- [Android Tips] 27. 检查 APK 是否可调试
使用 Android SDK 提供的 aapt 检查 APK 文件 $ aapt d badging ${APK_FILE} | grep 'application-debuggable' 检查自身 ...
- Java自定义注解的定义与使用
Java注解 Annotation(注解)是JDK5.0及以后版本引入的.它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查.注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可 ...