zookeeper难以理解易混淆的几点:
(一)zk自身主备策略
zk的选举值2n+1多数投票通过才选举为主(自身软件,信号量最大为主,和锁的获得算法无关,zk自身的主备是信号量(zk软件自己数据最新的为主),锁是和节点创建有关):
1,第一次每个节点先投自己,就是专为只有一个节点时设计的(有多个节点的时候,肯定不是半数通过)
2,每个节点想其他节点发起询问,获得所有其他节点的信息,选后选举投票给记票线程
主只是协调,同步,不做事情的
http://cailin.iteye.com/category/346914
http://cailin.iteye.com/blog/2014486/
https://www.douban.com/note/208430424/
(二)zk对其管辖进程中的线程锁的策略
zk(核心就是分布式锁)Zab协议(不同服务器执行各自同一个类中同一段代码(会造成数据混乱情况需要))
zk两种锁策略算法(即是锁的获得算法,不是选主的算法,节点排序自小占锁(依次类推,类似条件唤醒)))(时序锁原理)
1,独占锁,信号量最大的占有锁,其他节点抢占锁失败(都创建同名锁)
2,时序锁,每个节点都可以创建锁,排序最小的先获得锁,这样依次执行
占到锁的执行,没占到锁的等待之后执行(和一个系统中线程等待类似完全安这个理解),也就是说分布式下1用数据库的悲观锁,2通用zk的分布式锁,之前的线程锁用不了,但是原理一致
也是控制访问同一段代码
只是实现方式不同类似用悲观锁前置表(节点)(原理根quartz用悲观锁实现原理一致)(获得锁的原理就是每个线程创建一个节点作为标记,创建节点标记小的线程先执行(自定义锁的思想),传统用用关键字就有锁了)
(三)两阶段提交,都内存预提交后可以就提交
涉及修改操作的都会由多次预提交,最终由leader决定时候提交。
而需要分布式锁的都是修改操作,那么这样的每个线程请求都需要预提交
两阶段提交是不需要代码开发的,自然根据session操作的类型是更新操作的就自动统一由主确定是否能提交(多数节点预提交成功)
数据库相关的双主的同步通过互为设置主的方法,activeMq的双主是分别设立两个主,主之间打通通信通道deplux=true
另,zk的从众机制避免了脑裂(原因是由于采用sharing store ,共享文件系统,有锁,获取锁的才是主,网络不稳定断开的master,其他从重新选还是获取不到master的锁(master还在不会释放))
如果主节点恢复了,他会再次向ZooKeeper注册一个节点,这时候他注册的节点将会是"master-00003",ZooKeeper会感知节点的变化再次发动选举,
这时候"主节点-B"在选举中会再次获胜继续担任"主节点","主节点-A"会担任备用节点
http://www.cnblogs.com/thinkpad/p/5041493.html(这里说明zk避免了脑裂问题)
(3) Master 恢复
图7.8 ZooKeeper Master选举
如果主节点恢复了,他会再次向ZooKeeper注册一个节点,这时候他注册的节点将会是"master-00003",ZooKeeper会感知节点的变化再次发动选举,这时候"主节点-B"在选举中会再次获胜继续担任"主节点","主节点-A"会担任备用节点。
http://cailin.iteye.com/blog/2246940
相关推荐
这个版本的发布对于理解和使用Zookeeper至关重要,因为它包含了该框架的稳定性和功能增强。 在描述“注册中心 zookeeper-3.4.6”中,关键词“注册中心”揭示了Zookeeper在分布式系统中的核心作用。它作为一个中心化...
本文将详细介绍Zookeeper可视化工具的相关知识点,并探讨如何利用它们来优化Zookeeper的管理与维护。 ### 1. Zookeeper GUI工具的功能 Zookeeper可视化工具通常具备以下主要功能: - **节点浏览**:显示Zookeeper...
" Zookeeper 的通俗原理解释" Zookeeper 是基于 Paxos 算法实现的分布式协调服务,它提供了高可用、高性能、可扩展的解决方案。下面我们将通过一个通俗的例子来解释 Paxos 算法的原理和 Zookeeper 的实现机制。 ...
对于学习 Zookeeper 的学生或部署的工作人员,了解以下知识点至关重要: 1. 安装与配置:如何正确地安装 Zookeeper,包括修改配置文件、设置环境变量等。 2. 集群部署:如何配置多台机器组成 Zookeeper 集群,包括...
Zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据...理解和熟练掌握 Zookeeper 的安装、配置和使用,对于构建和维护大规模分布式系统具有重要意义。
ZooKeeper的源码主要分为以下几个部分: 1. **协议层**:包含ZAB协议的实现,处理消息的发送和接收,保证数据的最终一致性。 2. **服务器端**:包括ServerCnxnFactory(连接工厂)、ZooKeeperServer(服务器主体)...
【Zookeeper管理工具】是一个关于分布式协调服务Zookeeper的管理平台,它提供了便捷的方式来监控、配置和管理Zookeeper集群。Zookeeper是Apache Hadoop项目的一部分,主要用于解决分布式环境中的命名服务、配置管理...
**Zookeeper:分布式协调服务详解** Zookeeper是一个高性能、分布式的开源协调服务,它主要解决的是分布式环境下的...对于开发者而言,理解和掌握Zookeeper的工作原理和使用技巧,无疑能提升在分布式开发中的能力。
6. **docs** 目录:包含Zookeeper的文档,包括用户手册和API参考,帮助用户理解和使用Zookeeper。 7. **zkData** 目录:也需用户手动创建,用于存放Zookeeper的事务日志和快照,这是Zookeeper持久化数据的地方。 在...
apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper...
总的来说,《ZooKeeper:分布式过程协同技术详解》和《从Paxos到Zookeeper:分布式一致性原理与实践》两本书提供了深入理解ZooKeeper和分布式一致性理论的全面资源。无论是理论探讨还是实战指南,它们都为读者提供了...
Zookeeper是Apache软件基金会的一个开源项目,主要用于分布式协调服务,它是集群管理的基石,被广泛应用于大数据、云计算...对于Java开发者而言,理解并掌握Zookeeper的使用和原理,对于构建可靠的分布式系统至关重要。
《ZooKeeper 3.4.9:在Windows与Linux上的部署与应用》 ZooKeeper,一个由Apache基金会开发的分布式协调服务,是许多大型分布式系统中的关键组件。3.4.9版本是ZooKeeper的一个稳定版本,提供了一系列增强功能和性能...
CentOS 8 安装 ZooKeeper 3.8.0 详细步骤 ZooKeeper 是一个分布式应用程序协调服务,提供了配置管理、名称服务、分布式同步和提供组服务等功能。下面是 CentOS 8 安装 ZooKeeper 3.8.0 的详细步骤。 1. 下载安装包...
总结,本文详细介绍了如何在Zookeeper 3.4.14版本中实现IP黑白名单功能,从需求分析到源码改造,再到功能测试,覆盖了整个开发流程,旨在帮助读者理解和实践Zookeeper的安全管理。通过这样的定制化改造,我们可以更...
zookeeper Linux 集群搭建流程 ZooKeeper 是一个广泛使用的分布式协调服务,主要用于管理和协调分布式系统中的各个节点。Linux 集群搭建是 ZooKeeper 的一种常见应用场景,本文将详细介绍 ZooKeeper Linux 集群搭建...
ZooKeeper 增加权限登录验证 ZooKeeper 是一个广泛使用的分布式协调服务,它提供了许多有用的功能,如配置管理、名字服务、分布式锁等。然而,在 ZooKeeper 中存在一些安全漏洞,例如未经授权的访问、数据泄露等。...
《Apache ZooKeeper 3.4.6:分布式协调服务详解》 Apache ZooKeeper 是一个开源的分布式协调服务,它为分布式应用提供了一个高效且可靠的...正确理解和使用Zookeeper,可以帮助开发者构建更加健壮和高效的分布式系统。
在IT领域,Zookeeper是一个非常重要的分布式协调服务,由Apache Hadoop项目开发并维护。...通过理解和掌握Zookeeper的工作原理及其配置,开发者可以有效地利用Zookeeper来提升分布式系统的稳定性和可扩展性。
2. **文档**:包括用户指南、管理员手册和开发者指南,帮助用户快速上手,理解Zookeeper的工作流程和最佳实践。 3. **构建脚本**:如`build.xml`,用于编译和打包Zookeeper,便于开发者构建自己的版本。 4. **配置...