作为开启分布式架构的基石,除了必会还有的选么

自己的一些理解,有错误的话请一定要给予指正!

一、是什么?

分布式数据一致性的解决方案。

二、有什么用

数据的发布/订阅(配置中心)  、 负载均衡(dubbo利用了zookeeper机制实现负载均衡) 、命名服务、

master选举(kafka、hadoop、hbase)、分布式队列、分布式锁。

zookeeper入门知识

1.CAP理论和BASE理论

参考文献: http://www.jdon.com/bigdata/how-to-understand-cap.html

 分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:
● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
● 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
● 分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。分区容错性主要是考虑到网络故障时系统的处理.
关于CA冲突的理解:C 要求备份完才返回,保证数据一致(有故障则失败),而A不考虑数据同步的情况,会导致数据出现脏数据
base理论是在cap理论上升级,ba 表示基本可用, s表示soft-state,指的是  在基于client-server模式的系统中,server端有状态,即可以知道当前节点的同步情况.e指的是最终一致性(最终同步)
2.zookeeper的数据模型
树形结构 znode(节点),可被监听,且名字同级唯一,
节点类型分为:
 PERSISTENT(持久节点,服务断开任然存在)
PERSISTENT_SEQUENTIAL(例如:持久序列/test0000000019 即有序持久节点)
EPHEMERAL(临时节点,服务断开,节点消失)
EPHEMERAL_SEQUENTIAL(临时有序节点)
3.zookeeper 特性
3.1 顺序一致性,

从同一个客户端发起的事务请求(增删改),最终会严格按照顺序被应用到zookeeper中(队列,fifo)

3,2原子性

所有的事务请求的处理结果在整个集群中的所有机器上的应用情况是一致的,也就是说,要么整个集群中的所有机器都成功应用了某一事务、

要么全都不应用

3.3可靠些

一旦服务器成功应用了某一个事务数据,并且对客户端做了响应,那么这个数据在整个集群中一定是同步并且保留下来的

3.4实时性

一旦一个事务被成功应用,客户端就能够立即从服务器端读取到事务变更后的最新数据状态;(zookeeper仅仅保证在一定时间内,近实时)

 4.zab协议(角色,Paxos算法,选主过程)

参考文献:http://blog.jobbole.com/104985/

这一块恐怕要理解起来不是那么简单(源码级别)

zab主要是消息广播和崩溃恢复...

.zookeeper 中的observe角色

这个比较特殊:https://blog.csdn.net/mayp1/article/details/52026797/

事务:对数据源进行了改变

observe用来提高系统读取的吞吐量,不参与事务(增删改)以及投票.

这也很正常,如果leader是皇帝,observe顶多算个监国,只能处理日常事情,不然岂不是比leader权利还大.(代码即人生).

 
 

zookeeper 入门知识的更多相关文章

  1. zookeeper入门知识

    ZooKeeper 是什么? ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) . 蜜蜂(Hive) .小猪(Pig)  的管理员, Apache Hbase和 Apache ...

  2. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  3. 移动H5开发入门知识,CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  4. H5移动端开发入门知识以及CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  5. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

  6. Java基础入门知识

    Java编程入门知识   知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...

  7. zabbix入门知识

    zabbix入门知识 zabbix中文手册 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介绍 Zabbix 是一个企业级的分布式开 ...

  8. 分布式进阶(十六)Zookeeper入门基础

    Zookeeper入门基础 前言 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置为EPHEMERAL,那么当 ...

  9. React的入门知识与概念【1】

    回顾在以往的项目开发中,从最初的使用的原生html+js+css+jquery开发,到后来随着项目功能的增加,也渐渐学习了Vue.js框架的开发,以及Vue.js的全家桶Axios,Vue-route ...

随机推荐

  1. 信息安全-加密:AES 加密

    ylbtech-信息安全-加密:AES 加密 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一 ...

  2. 保持url唯一性 解决多个网站首页问题

    原文地址:http://www.seowhy.com/bbs/thread-2694339-1-1.html 在网站SEO优化过程中,经常会遇到这样或者那样的常见技术型问题,达闻现将此类常见技术问题总 ...

  3. IGMP Internet组管理协议 未完

    一.IGMP Internet组管理协议 2.IGMP v2 3.IGMP三版本比较 4.1.1.4 IGMP v2 与 IGMP v1 的兼容 5.IGMP窃听(IGMP Snooping) IGM ...

  4. 智行火车票免费加速到VIP最高速抢票(不用朋友积攒或者购买加速包)

    更新: 2018.11.07, 昨天我买火车票,已经不行了,这个bug已经没有了,被修复了, 望大家知悉!!! 智行火车票免费加速到VIP最高速抢票(不用朋友积攒或者购买加速包) 1)下过单后选择抢到 ...

  5. [UE4][Canvas]用C++代码绘制血条(HealthBar)

    转自:http://aigo.iteye.com/blog/2275110 参考自Epic官方项目StrategyGame 血条效果: StrategyHUD.h StrategyHUD.cpp

  6. 关于HSTS

    HSTS(HTTP Strict Transport Security) 当用户在浏览器中输入一个域名,如果没有注明前缀(也就是没输入"http"的时候)的时候,浏览器会默认按照h ...

  7. Html5——canvas标签使用

    canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. canvas 元素本身是没有绘图能力的.所有的绘制工作必须在 JavaScript 内部完成 <script type=&q ...

  8. python—正则表达式

    我们平时上网的时候,经常需要在一些网站上注册帐号,而注册帐号的时候对帐号信息会有一些要求. 比如: 上面的图片中,输入的邮件地址.密码.手机号 符合要求才可以注册成功. 我们是我们自己写的网站,那么我 ...

  9. JavaScript之函数,词法分析,内置对象和方法

    函数 函数定义 JavaScript中的函数和Python中的非常类似,只是定义方式有点区别. // 普通函数定义 function f1() { console.log("Hello wo ...

  10. 网易云音乐mp3外链、真实地址下载方法

    一个网易音乐外链地址长期有效,很简单的方法: 第一步打开网易云音乐,随便找到一首歌,播放,复制网址的ID, 例如:杨钰莹的心雨,网址是: http://music.163.com/#/song?id= ...