ZooKeeper学习笔记

学习笔记之ZooKeeper源码分析 zookeeper源码分析 服务器启动 首先zookeeper的服务器启动类为 org.apache.zookeeper.server.quorum.QuorumPeerMain该类中包含 main()方法: public static void main(String[] args) { QuorumPeerMain main = new QuorumPeerMain(); tr... 阅读详情

CAP定理

CAP理论告诉我们,一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中的两项。

BASE理论

BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent (最终一致性)三个短语的简写。其核心思想是即使无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。

最终一致性

最终一致性包括:因果一致性(Causal consistency),读己之所写(Read your writes),会话一致性(Session consistency),单调读一致性(Monotonic read consistency),单调写一致性(Monotonic write consistency)。

3PC

是Three-Phase Commit的缩写,即三阶段提交,是2PC的改进版,其将二阶段提交协议的“提交事务请求”过程一分为二,形成了由CanCommit、PreCommit和do Commit三个阶段组成的事务处理协议。

Paxos算法

Paxos算法运行在允许宕机故障的异步系统中,不要求可靠的消息传递,可容忍消息丢失、延迟、乱序以及重复。它利用大多数 (Majority) 机制保证了2F+1的容错能力,即2F+1个节点的系统最多允许F个节点同时出现故障。

Lamport的故事

Paxos算法是一代宗师Lamport提出的一种基于消息传递的分布式一致性算法,使其获得2013年图灵奖。看了Paxos算法的历史,不胜唏嘘。Lamport大师在50多岁时提交的论文被拒绝了,60多岁时这篇文章终于被接受了(因为人们终于认识了它的重要性),70多岁时获得了计算机界的最高荣誉。而我们大多数人,一言不合就拍屁股走人,很难在一个领域精耕细作。我们基本上就是拿来主义,拿到外国人依据外国人发明的算法写的软件,拿来就用。

ZooKeeper是什么

ZooKeeper 是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

Zookeeper维护一个类似文件系统的数据结构,每个子目录称作为 znode。有四种类型的znode:PERSISTENT持久化节点、PERSISTENT_SEQUENTIAL持久化顺序编号节点、EPHEMERAL临时节点、EPHEMERAL_SEQUENTIAL临时顺序编号节点。 

每个Znode由3部分组成:stat描述该Znode的版本、权限等信息;data为该Znode关联的数据;children是该Znode下的子节点。

客户端可以注册监听它关心的节点,当节点发生变化(数据改变、被删除、子目录节点增加删除)时,会产生watch事件。watch事件是一次性的触发器,当watch的对象状态发生改变时,会触发此对象上watch所对应的事件。watch事件将被异步地发送给客户端,并且ZooKeeper为watch机制提供了有序的一致性保证。

为什么要用Zookeeper?

我觉得知乎上的这个回答很好:

“所以我们需要这个存储master信息的服务器集群,做到当信息还没同步完成时,不对外提供服务,阻塞住查询请求,等待信息同步完成,再给查询请求返回信息。

这样一来,请求就会变慢,变慢的时间取决于什么时候这个集群认为数据同步完成了。

假设这个数据同步时间无限短,比如是1微妙,可以忽略不计,那么其实这个分布式系统,就和我们之前单机的系统一样,既可以保证数据的一致,又让外界感知不到请求阻塞,同时,又不会有SPOF(Single Point of Failure)的风险,即不会因为一台机器的宕机,导致整个系统不可用。

这样的系统,就叫分布式协调系统,谁能把这个数据同步的时间压缩的更短,谁的请求响应就更快,谁就更出色,Zookeeper就是其中的佼佼者。

它用起来像单机一样,能够提供数据强一致性,但是其实背后是多台机器构成的集群,不会有SPOF。其实就是CAP理论中,满足CP,不满足A的那类分布式系统”

参考资料:

祥光 https://zhuanlan.zhihu.com/p/31780743

倪超《从Paxos到Zookeeper》

郝乌亮 https://.cnblogs.com/wuxl360/p/5817471.html

柳树 https://www.zhihu.com/question/35139415/answer/715114516

-----------------------------------------------------------------------------------------

我的公众号:永宁河(peace_river)

我的公众号

Zookeeper学习笔记 --- Python操作zookeeper 阅读详情

相关推荐

Zookeeper学习笔记 --- Zookeeper调研报告3

Zookeeper学习笔记 --- Zookeeper调研报告3

杨鑫newlife的专栏 836

分布式中间件:Zookeeper 介绍

Zookeeper 是 Apache 软件基金会的一个顶级项目,它是一个开源的、高性能的分布式协调服务。本质上,Zookeeper 是一个分布式的、高可用的、树形结构的键值存储系统。它以树状的层次结构来组织数据,每个节点被称为 ZNode,类似于文件系统中的目录和文件。Zookeeper 提供了一系列的接口,允许分布式应用程序在其上进行数据的存储、读取、监听等操作,从而实现分布式系统的协调功能。

weixin_55987175的博客 1293

Zookeeper学习笔记 --- Zookeeper调研报告2

Zookeeper学习笔记 --- Zookeeper调研报告2

杨鑫newlife的专栏 749

深入分析zookeeper(理论加实战)

本文目录一、zookeeper基础1.1、什么是zookeeper?1.2、文件系统1.2、监听通知机制二、实际生产中的作用2.1、配置管理2.2、统一命名服务2.3、分布式锁2.4、集群管理等服务三、纸上得来总觉浅,zookeeper实战3.1、使用docker安装zookeeper最新版3.1.1、下载zookeeper镜像3.1.2、启动容器并暴露2181端口3.1.3、查看容器状态3.1....

静待花开 2888

一步搞定Typora软件的安装指南

本文还有配套的精品资源,点击获取 简介:Typora是一款简洁直观的Markdown编辑器,广受好评。本文提供了一个详细的安装指南,介绍如何直接下载并安装Typora,包括检查系统兼容性、运行安装程序、接受许可协议、选择安装位置、创建快捷方式、完成安装、进行首次启动与设置以及探索高级功能。无论是新手还是有经验的用户,本指南都将帮助您顺利开始使用Typora进行高效的内容创作...

weixin_30838971的博客 1584

jmqtt:基于Netty和Zookeeper的分布式MQTT代理

知乎 基于 Netty 和 Zookeeper 的分布式 MQTT 服务器。

Zookeeper学习(转自知乎)

https://zhuanlan.zhihu.com/p/24996631 众所周知,zookeeper与分布式有着千丝万缕的联系。它虽然源自于hadoop,但目前zookeeper脱离hadoop的范畴开发分布式应用越来越普遍,想到这里,不禁为hadoop扼腕叹息。 那么Zookeeper究竟是什么呢? 从他的名字就可以看出来 ------ 动物园管理员,就相当于是把集群中的客户端当作许多...

weixin_30549175的博客 440

保姆级教程:Halcon 3D点云匹配与差异分析避坑指南(从采样到可视化)

本文提供了一份详细的Halcon 3D点云匹配与差异分析实战指南,涵盖从模型准备到可视化的全流程。重点解析了STL文件读取单位误区、点云采样密度优化、表面模型创建技巧以及差异分析的专业手法,帮助用户避开常见陷阱,提升工业检测效率与精度。

weixin_33728268的博客 402

Zookeeper学习笔记

Zookeeper学习笔记 跟学尚硅谷Zookeeper,自我总结 第 1 章 Zookeeper 入门 Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。 数据结构 ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个 节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,每个 ZNode 都可以通过 其路径唯一标识。 应用场景 提供的服务包括:统一命名服务、统一配置管理、统一集群管

qq_42274571的博客 259

别再只调陀螺仪了!用OpenCV实现基于透视变换的EIS防抖,实测效果媲美手机

本文深入探讨了基于透视变换的EIS电子稳像技术,通过OpenCV实现高阶防抖算法,效果媲美主流手机厂商方案。详细解析了传统旋转平移模型的局限性,并展示了透视变换在复杂场景下的优势,包括数学原理、OpenCV实战代码及性能优化技巧,为视频防抖提供了专业解决方案。

weixin_42613501的博客 450

从零到一:基于Rocky Linux 9的Kubernetes高可用集群部署实战

本文提供了一份基于Rocky Linux 9操作系统,从零开始部署Kubernetes高可用集群的完整实战指南。详细讲解了包括系统初始化、容器运行时配置、使用kubeadm工具进行集群初始化、节点加入以及Calico网络插件安装在内的核心步骤,并针对国内网络环境提供了镜像加速等优化方案,旨在帮助读者构建一个稳定可靠的生产级K8s环境。

weixin_29197835的博客 135

ZooKeeper学习笔记(七):ZooKeeper依赖-API方法

代码和具体笔记直接放到gitee了,不然还要再写一个md文档没啥意义很麻烦 代码地址,在zookeeper对应的文件夹下面

社畜程序员的无聊博客 1154

RYU+Mininet的SDN架构-设计校园网络(一)

现有一个中学,需要设计一个中小型网络满足学校的网络需求。学校有教学区,实验室区域和服务器区域。教学区为了满足接入的灵活性和信号强度要求,需要满足设计WIFI满足日常教室和同学需求,接入上限为200人。实验室区域需要有一台教师主机方便管理实验室其余电脑,并且教师主机可以访问学校服务器,方便为同学们实验室授课。学校服务器区域设有学校相关重要文件和学校网页相关内容。最后学校还会接入互联网。

weixin_53284122的博客 8034

【分布式系统】Zookeeper学习笔记

Zookeeper学习笔记, 包含Zookeeper的基本原理和基本使用

passnight的博客 1071

别再死记硬背了!用LTspice和Simulink仿真,5分钟搞懂巴特沃斯、切比雪夫、贝塞尔滤波器的区别

本文通过LTspice和Simulink仿真工具,直观对比了巴特沃斯、切比雪夫和贝塞尔滤波器的特性差异。从通带波纹、过渡带陡峭度到相位线性度,详细解析了三种经典滤波器的设计哲学与应用场景,帮助工程师和学生快速掌握滤波器选型技巧,提升电路设计效率。

weixin_33910191的博客 523

C++和蓝图1:Unreal Engine 中 C++ 与蓝图的桥梁

摘要: 本文介绍了Unreal Engine(UE)中C++与蓝图可视化脚本的结合机制,重点解析了宏系统(UCLASS、UPROPERTY、UFUNCTION)如何实现代码与蓝图的交互。相比Unity的纯C#脚本模式,UE的双轨制开发允许程序员用C++处理核心逻辑,同时通过蓝图让非程序员快速迭代。文章对比了两大引擎的编程范式差异,指出UE的反射系统和宏标记提供了更精细的控制,并给出了从Unity迁移到UE的具体思路。核心在于理解UE的混合编程优势:C++保证性能,蓝图提升开发效率,二者通过宏系统无缝协作。

qq_46348216的博客 1405

【喜加一】zookeeper学习笔记

2018-12-24,周一,晴 团建回来第一天。 zookeeper学习笔记: 概念: 架构: 服务器是主从结构,每个客户端都有一份所有server的地址列表。 层级命名空间、会话、监视:https://www.w3cschool.cn/zookeeper/zookeeper_fundamentals.html   在mac上起一个单机供调试用: 下载+配置+cli例子如下:...

zhuyuanfu的专栏 235

若依开源系统多数据源整合clickhouse数据库详细步骤

若依开源系统多数据源整合clickhouse数据库详细步骤

java之书-资源 897

Zookeeper学习笔记:Zookeeper的简介安装与配置

文章目录[简介]一、Zookeeper的特性二、Zookeeper的选举机制说明[Zookeeper的集群搭建]一、环境准备二、安装包准备三、免密登录配置四、在192.168.0.52机器上面安装配置操作五、创建myid文件六、分发zookeeper目录文件到其他机器七、修改myid文件的值八、配置Zookeeper环境变量 [简介] ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布、数据订阅、负载均衡、命名服务、分布式协调、分布式通知、集群管理、maste

1274

基于STM32L4XX、HAL库的AD7124模数转换器ADC驱动程序设计

/ 检查ID是否正确 (AD7124-4/AD7124-8有不同的ID)// 转换为电压值 (假设使用内部2.5V基准)// 构造读命令: 1(R/W) + 1(0) + 6(寄存器地址)// 构造写命令: 0(R/W) + 1(0) + 6(寄存器地址).config = 0, // 使用配置0。内置可编程增益放大器(PGA):1-128倍。// 读取ADC数据。// 读取当前ADC控制寄存器。// 检查数据是否就绪。// 写回ADC控制寄存器。// 初始化AD7124。

zhusl6688的博客 519

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

zookeeper学习笔记-基本用法进阶

数据节点  数据节点Znode:  – 是机器的意思  – zk树形结构中的数据节点,用于存储数据  – 持久节点(PERSISTENT)一旦创建,除非主动调用删除操作,否则一直存储在zk上  – 临时节点(EPHEMERAL):与客户端的会话绑定,一旦客户端会话失效,与个客户端创建的所有临时节点都会被移除  – PERSISTENT _SEQUENTIAL 创建子节点时,如果不置属性

lvbug080的博客 493

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【SpringCloud学习笔记】Zookeeper服务注册

【SpringCloud学习笔记】Zookeeper服务注册 注册中心Zookeeper zookeeper是一个分布式协调工具,可以实现注册中心功能 关闭Linux服务器防火墙后启动zookeeper服务器 zookeeper服务器取代Eureka服务器,zk作为服务注册中心 前置条件 已安装JDK 已配置了环境变量JAVA_HOME,PATH 环境配置 下载最新版的zookeeper 官网地址:https://zookeeper.apache.org/releases.html 解压至apa

zhaoqx的博客 367

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Zookeeper学习笔记一

黑马zookeeper学习笔记

wlw__的博客 913

zookeeper学习笔记

  因最近工作中要用到zookeeper,故找来资料学习一番,为加强记忆,特做笔记如下:   笔记内容:   1、zookeeper背景   2、本地微集群配置   3、java api使用   4、几种常见使用场景   5、运维管理   6、自己的理解 -----------分割线之开始正文----------------------------------------...

afz8572的博客 157
上一篇: MySQL学习笔记
下一篇: 初学Docker
永宁河
博客等级 码龄22年 35粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值