`
huobengluantiao8
  • 浏览: 1029744 次
文章分类
社区版块
存档分类
最新评论

zookeeper

 
阅读更多

http://stblog.baidu-tech.com/?p=1164


用于分布式下一致性相关问题的解决方案。可以理解为由集群组成的可靠的单master。可将传统方案中的master使用zookeeper代替,且不用担心单点问题。

应用场景:树状结构的命名服务、节点数据变更的消息通知、分布式共享锁、配置数据的集中存放、集群中节点机器的状态管理及状态变更通知

zookeeper实现分布式锁:通过zookeeper的节点状态进行条件判断,如果不满足,则在客户端本地加锁等待Object.wait()。利用zookeeper的实时通知机制,当zookeeper的节点满足条件状态时,客户端会同步获得通知,然后在本地解锁Object.notifyAll()。从而实现了分布式加锁、阻塞、解锁。


三类角色: leader(处理写请求,单点)、follower(处理客户端请求,参与投票)、observer(不投票,只处理客户端请求)

恢复模式:服务重启或者leader宕机后,通过paxos算法,从follower中重新选出leader,并以leader为准,进行数据同步。此时服务不可用。


paxos选举算法:

1、每次选举,都是针对某个txid(transaction id)进行。

2、每个follower首先广播询问,获取其它所有server的txid、提议value,txid必须相同,value存储到提议列表中

3、follower从提议列表中获取value,如果这个value被大于一半的follower支持,则直接使用此value,否则,继续发出广播询问。并且将此value作为回答其它follower轮训的提议。

4、循环执行3,直到收敛

paxos的精髓:解决了集群中,非全联通情况下的一致性问题。对于正常全联通情况,每台机器只需要广播获取其它各台机器的数据,然后比较获取最大值即可。这样各个节点得到的结论应该是一样的。问题在于,某些节点之间是不联通的。于是某个节点无法获知全局数据,只能通过paxos中循环投票,收敛至全局最优解。


同步流程:选举完成后,各个follower向leader发送同步请求,带上自己的最大zxid。leader通过zxid确定同步点,将这之后的commit log交给follower进行同步。所有节点都保存一份系统状态数据,非强一致(getData不保证最新数据,可以先sync一下保证数据的同步状态),有同步延时。


多节点可读可写,部分节点延时同步,最终一致性。follower和observer负责监听客户请求和处理读请求。对于所有写请求,都一律转发至leader进行选举和数据同步。observer不参与投票,只做数据同步,提高写请求的效率。



分享到:
评论

相关推荐

    zookeeper日志查看工具

    #Zookeeper的日志可以用LogFormatter查看 ##命令方式如下 java -classpath .:slf4j-api-1.7.2.jar:zookeeper-3.4.6.jar org.apache.zookeeper.server.LogFormatter /var/lib/zookeeper/version-2/log.1 ##window...

    1、zookeeper3.7.1安装与验证

    1、zookeeper3.7.1安装与验证 网址:https://blog.csdn.net/chenwewi520feng/article/details/130280946 zookeeper的安装与验证分为4个部分,即环境准备、部署、验证和环境变量设置。 由于zookeeper需要非root用户,...

    zookeeper-3.4.11.tar.gz

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、...

    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-3.7.1 apache-zookeeper...

    ZooKeeper-分布式过程协同技术详解.pdf

    第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。 购买地址:https://item.jd.com/11880788.html

    zookeeper 3.6.3 源码下载

    zookeeper 3.6.3 源码

    【BAT必备】zookeeper面试题

    【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】...

    zookeeper安装包 支持window

    Zookeeper是一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中心。 Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注册中心...

    Zookeeper篇.pdf

    1.0 zookeeper 是什么? 1.1 zookeeper 提供了什么? 1.2 zookeeper 文件系统 1.3 zookeeper 的四种类型的 znode 1.4 zookeeper 通知机制 1.5 zookeeper 有哪些应用场景? 1.6 zk 的命名服务 1.7 zk 的配置管理服务 ...

    apache-zookeeper-3.5.10-bin 环境搭配

    apache-zookeeper-3.5.10-bin 环境搭配 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,...

    zookeeper-3.4.6-API文档-中文版.zip

    赠送jar包:zookeeper-3.4.6.jar; 赠送原API文档:zookeeper-3.4.6-javadoc.jar; 赠送源代码:zookeeper-3.4.6-sources.jar; 赠送Maven依赖信息文件:zookeeper-3.4.6.pom; 包含翻译后的API文档:zookeeper-...

    zookeeper可视化工具

    zookeeper可视化工具

    zookeeper linux集群搭建流程

    zookeeper linux 搭建流程,zookeeper linux 搭建流程zookeeper linux 搭建流程zookeeper linux 搭建流程。

    zookeeper-3.4.9-API文档-中文版.zip

    赠送jar包:zookeeper-3.4.9.jar; 赠送原API文档:zookeeper-3.4.9-javadoc.jar; 赠送源代码:zookeeper-3.4.9-sources.jar; 赠送Maven依赖信息文件:zookeeper-3.4.9.pom; 包含翻译后的API文档:zookeeper-...

    zookeeper-3.3.6.tar.gz

    解压 zookeeper-3.3.6.tar.gz 4、进入conf目录,cp zoo_sample.cfg to zoo.cfg,根据你的要求进行修改 [plain] view plain copy tickTime=2000 dataDir=/data/zookeeper/ clientPort=2181 initLimit=5 ...

    twill-zookeeper-0.6.0-incubating-API文档-中文版.zip

    赠送jar包:twill-zookeeper-0.6.0-incubating.jar; 赠送原API文档:twill-zookeeper-0.6.0-incubating-javadoc.jar; 赠送源代码:twill-zookeeper-0.6.0-incubating-sources.jar; 赠送Maven依赖信息文件:twill-...

    Zookeeper学习笔记.pdf

    ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:**分布式锁服务**。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:**...

    centos8安装zookeeper3.8.0详细步骤

    centos8安装zookeeper3.8.0详细步骤

    ZooKeeper-分布式过程协同技术详解 和从Paxos到Zookeeper

    ZooKeeper-分布式过程协同技术详解 和 从Paxos到Zookeeper 分布式一致性原理与实践 电子书。喜欢请支持种作者。购买纸质版

    zookeeper安全漏洞修复

    ZooKeeper 未授权访问【原理扫描】,zookeeper安全漏洞修复方法和操作步骤

Global site tag (gtag.js) - Google Analytics