分布式-Zookeeper
文章平均质量分 94
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
Paxos共识算法详解
在一个分布式系统中,由于节点故障、网络延迟等各种原因,根据CAP理论,我们只能保证一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)中的两个。对于一致性要求高的系统,比如银行取款机,就会选择牺牲可用性,故障时拒绝服务。MongoDB、Redis、MapReduce使用这种方案。对于静态网站、实时性较弱的查询类数据库,会牺牲一致性,允许一段时间内不一致。简单分布式协议Gossip,数据库CouchDB、Cassandra使用这种方转载 2020-08-22 12:48:16 · 1506 阅读 · 0 评论 -
zookeeper--基本原理
一、概述1、基本概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致服务的软件。2、zk提供了什么虽然可以用zk实现很多功能,但是实际上zk只提供了三个东西:文件系统、通知机制、集群管理机制。(1)文件系统zk的存储的数据的结构,类似于一个文件系统,结构如下:每...转载 2020-01-20 15:21:28 · 1085 阅读 · 0 评论 -
作为服务注册中心,Eureka比Zookeeper好在哪里
https://blog.csdn.net/paincupid/article/details/80610441https://my.oschina.net/thinwonton/blog/1622905著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zooke...转载 2020-01-07 20:05:47 · 563 阅读 · 0 评论 -
Zookeeper的写和读数据流程(图文讲解)
首先回顾一下Zookeeper中Leader和Follower的作用:Leader:负责进行投票的发起和决议,分布式读写,更新请求转发;Follower:负责接收客户端请求并向客户端返回结果,在选举Leader过程中参与投票(选举机制);一、写数据流程以3台服务器的Zookeeper集群为例,一个Leader,两个Follower即server1和server2(1)Cl...转载 2020-01-03 15:24:47 · 2069 阅读 · 0 评论 -
ETCD 简介 + 使用
随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题。etcd为解决这类问题带来了福音,本文...转载 2019-12-30 18:25:29 · 638 阅读 · 0 评论 -
部署与管理ZooKeeper(转)
本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要点,围绕ZK的部署和运维两个方面讲一些管理员需要知道的东西。本文并非一个ZK搭建的快速入门,关于这方面,可以查看《ZooKeeper快速搭建》。1.部署本章节主要讲述如何部署ZooKeeper...转载 2016-10-22 20:20:54 · 982 阅读 · 0 评论 -
ZooKeeper典型应用场景(转)
ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利...转载 2016-10-22 20:22:29 · 810 阅读 · 0 评论 -
ZooKeeper概述(转)
译自http://zookeeper.apache.org/doc/trunk/zookeeperOver.htmlZooKeeper是一个用于分布式应用的开源分布式协调服务。它提供了简单的原语集合,分布式应用可在这些原语之上构建用于同步、配置维护、分组和命名的高层服务。ZooKeeper的设计使得编程容易,并且使用类似于广泛熟知的文件系统目录树结构的数据模型。它运行在Java环境中,但是有J...转载 2016-10-22 20:28:59 · 814 阅读 · 0 评论 -
ZooKeeper程序员指南(转)
译自http://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html1简介本文是为想要创建使用ZooKeeper协调服务优势的分布式应用的开发者准备的。本文包含理论信息和实践信息。本指南的前四节对各种ZooKeeper概念进行较高层次的讨论。这些概念对于理解ZooKeeper是如何工作的,以及如何使用ZooKeeper来进...转载 2016-10-22 20:34:14 · 868 阅读 · 0 评论 -
Zookeeper Api(java)入门与应用(转)
如何使用Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,后面将会详细介绍 Zookeeper 能够解决的一些典型问题,这里先介绍一下,...转载 2016-10-22 20:43:06 · 942 阅读 · 0 评论 -
Zookeeper全解析——Paxos作为灵魂(转)
原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。先说Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在...转载 2016-10-22 21:11:55 · 908 阅读 · 0 评论 -
Zookeeper全解析——Client端(转)
Zookeeper的Client直接与用户打交道,是我们使用Zookeeper的interface。了解ZK Client的结构和工作原理有利于我们合理的使用ZK,并能在使用中更早的发现问题。本文将在研究源码的技术上讲述ZK Client的工作原理及内部工作机制。在看完ZK Client的大致架构以后我希望能有一种简单的方式描述ZK Client的基本结构,想来想去我觉得还是图片比较能反映情况...转载 2016-10-22 21:14:04 · 1612 阅读 · 0 评论 -
zookeeper系列之通信模型(转)
本文的主题就是讲解Zookeeper通信模型,本节将通过一个概要图来说明Zookeeper的通信模型。Zookeeper的通信架构在Zookeeper整个系统中,有3中角色的服务,client、Follower、leader。其中client负责发起应用的请求,Follower接受client发起的请求,参与事务的确认过程,在leader crash后的leader选择。而le...转载 2016-10-22 21:15:24 · 1571 阅读 · 0 评论 -
ZooKeeper watch机制
zookeeper watch机制一个zk的节点可以被监控,包括这个目录中存储的数据的修改,子节点目录的变化,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的集中管理,集群管理,分布式锁等等。getData(), getChildren(), and exists()可以设置对某个节点进行监听。New ZooKeepe...转载 2019-12-24 10:37:50 · 1430 阅读 · 0 评论 -
ZK的选举算法
一、前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。二、Leader选举2.1 Leader选举概述 Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。 (1) 服务器初始化启动。 ...转载 2019-11-27 17:50:51 · 1091 阅读 · 0 评论 -
ZAB协议-zk
参考文章:https://blog.csdn.net/chengyuqiang/article/details/79190061https://blog.csdn.net/wangyangzhizhou/article/details/52698555https://blog.csdn.net/yangguosb/article/details/80254240ZK中使用的是ZAB协议,...转载 2019-11-22 17:58:29 · 619 阅读 · 0 评论 -
拜占庭将军问题深入探讨
http://www.8btc.com/baizhantingjiangjun了解过比特币和区块链的人,多少都听说过拜占庭将军问题,或听说过比特币(或区块链)的一个重要成就正是解决了拜占庭将军问题。但真正明白这个问题的人并不多,甚至知道这个问题实质的人都很罕见。本文是一篇技术科普,将重点提供了拜占庭将军问题本身对本质及经典算法的解析,并探讨与之相关的一些问题。笔者参考了不少文献,夹转载 2018-02-28 10:57:17 · 1474 阅读 · 0 评论 -
Zookeeper客户端API之创建节点(七)
http://blog.csdn.net/wo541075754/article/details/65625481本篇博客主要讲一下使用Zookeeper原生的客户API来创建一个数据节点。创建数据节点方法Zookeeper提供了两个创建数据节点的方法。同步创建数据节点方法:public String create(final String path, byte data[], List<A...转载 2018-02-24 21:44:07 · 891 阅读 · 0 评论 -
Zookeeper客户端API之创建会话(六)
http://blog.csdn.net/wo541075754/article/details/61190967Zookeeper对外提供了一套Java的客户端API。本篇博客主要讲一下创建会话。创建项目首选,创建一个基于maven管理的简单java工程。在pom文件中引入zookeeper。dependency> groupId>org.apach转载 2018-02-24 21:35:02 · 766 阅读 · 0 评论 -
Zookeeper的客户脚本及命令(五)
http://blog.csdn.net/wo541075754/article/details/60569892Zookeeper部署完成之后,本篇博客介绍一下Zookeeper的客户端脚本以及相关的操作命令。启动Zookeeper进入zookeeper的bin目录下,执行以下命令,完成启动:[root@localhost bin]# sh zkServer.sh startZooKeeper...转载 2018-02-24 21:25:08 · 696 阅读 · 0 评论 -
Zookeeper的角色及系统模型(四)
http://blog.csdn.net/wo541075754/article/details/60316543角色zookeeper主要有以下角色:角色说明Leader(领导者)为客户端提供读和写的服务,负责投票的发起和决议,更新系统状态。Follower(跟随者)为客户端提供读服务,如果是写服务则转发给Leader。在选举过程中参与投票。Observe(观察者)为客户端提供读服务器,如果是写...转载 2018-02-24 18:21:56 · 666 阅读 · 0 评论 -
Zookeeper集群部署与配置(三)
http://blog.csdn.net/wo541075754/article/details/56830137环境集群配置的环境与单机配置的环境相同,唯一不同的就是集群是在多台服务器之间配置,当然也有伪集群的配置,也就是在同一台机器上配置多台服务,通过端口号的不同来进行区分。配置文件在单机配置文件内增加server项的配置,新增之后的配置文件如下:tickTime=2000initLimit...转载 2018-02-24 18:12:27 · 657 阅读 · 0 评论 -
Zookeeper单机安装部署与配置(二)
http://blog.csdn.net/wo541075754/article/details/56483533环境准备(1)操作系统 笔者的操作环境基于CentOS系统来进行操作,Linux环境是在VMware Workstation中搭建的虚拟机系统。(2)Java环境 Zookeeper是在Java运行环境下运行,确保在JDK1.6及以上版本,笔者使用JDK1.7。JDK安装由于笔者完全从...转载 2018-02-24 18:09:28 · 628 阅读 · 0 评论 -
Zookeeper简介(一)
http://blog.csdn.net/wo541075754/article/details/56335059使用Zookeeper已经有几年时间了,零零散散的积累了一些经验,但从未想过能写出一些列的文章分享出来。从今天起,计划持续更新关于Zookeeper相关的文章,从基本的搭建使用、原理分析、典型场景分析、引用案例及代码编写,甚至到后期的源代码分析,带领大家一步步的从入门到深入Zookee...转载 2018-02-24 17:56:32 · 708 阅读 · 0 评论 -
zookeeper如何实现分布式锁解决羊群效应
http://blog.csdn.net/Nash_Cyk/article/details/79139231本文主要讲述在使用ZooKeeper进行分布式锁的实现过程中,如何有效的避免“羊群效应( herd effect)”的出现。一般的分布式锁实现这里简单的讲下一般的分布式锁如何实现。具体的代码实现可以在这里看到:https://svn.apache.org/repo转载 2018-02-22 17:55:05 · 3684 阅读 · 0 评论 -
Zookeeper客户端API之读取子节点列表(八)
http://blog.csdn.net/wo541075754/article/details/66472416本篇博客介绍一下Zookeeper原生客户端API提供的获取子节点列表方法。获取子节点列表方法方法Zookeeper原生客户端API提供了以下8中获取子节点列表的方法,每个方法的使用说明参考注释内容:/** * 返回指定路径下面的子节点列表。 * 如果watcher不为null,并...转载 2018-02-24 21:45:21 · 959 阅读 · 0 评论 -
zookeeper集群环境搭建(centos)
http://blog.csdn.net/m290345792/article/details/52576890zookeeper 介绍zookeeper是什么Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务,使得分布式应用可以基于这些接口实现诸如转载 2018-02-25 11:14:51 · 694 阅读 · 0 评论 -
linux CentOS 7下zookeeper集群环境搭建
http://blog.csdn.net/m290345792/article/details/52576890zookeeper说明ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分转载 2018-02-25 11:16:14 · 688 阅读 · 0 评论 -
zookeeper编程(二)
ZooKeeper的轮廓/---root | \----child1 | \----child2 | \----child3 | \----grandson1 | \----grandson2采用了简化的praxos算法来确保zookeeper集群节点的数据一致性只要Quorum的成员有一半以上处于转载 2016-08-31 11:55:01 · 1037 阅读 · 0 评论 -
ZAB协议
https://blog.csdn.net/qq_18998145/article/details/86670008zookeeper 是一个为分布式应用提供高效且可靠的分布式协调服务。在解决分布式一致性方面,zookeeper 并没有使用 Paxos ,而是采用ZAB 协议,它有两种基本模式,崩溃恢复模式和消息广播模式,ZAB 让整个 zookeeper 集群在两个模式之间转换,消息广...转载 2019-05-29 17:48:29 · 860 阅读 · 0 评论 -
zookeeper集群为什么要是单数
在zookeeper集群中,会有三种角色,leader、 follower、 observer分别对应着领导、随从、观察者。半数以上投票通过:可以这样理解。客户端的增删改操作无论访问到了哪台zookeeper服务器,最终都会被转发给leader服务器,再由leader服务器分给zookeeper集群中所有follower服务器去投票(投票指的是在内存中做增删改操作),半数投票通过就被认为操作可...转载 2019-03-23 20:02:30 · 831 阅读 · 0 评论 -
【分布式】Zookeeper的Leader选举-选举过程介绍比较清晰
http://blog.csdn.net/gaoshan12345678910/article/details/67638657http://www.cnblogs.com/leesf456/p/6107600.html一、前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。二、Leader选举 2....转载 2018-02-25 13:02:54 · 2625 阅读 · 0 评论 -
Zookeeper之开源客户端ZkClient
http://blog.csdn.net/wo541075754/article/details/68929512ZkClient是由Datameer的工程师开发的开源客户端,对Zookeeper的原生API进行了包装,实现了超时重连、Watcher反复注册等功能。ZKClient版本及源码maven依赖ZkClient目前有两个不同artifactId的系列。转载 2018-02-25 11:18:06 · 1026 阅读 · 1 评论 -
Zookeeper开源客户端ZKClient和Curator简介
http://blog.csdn.net/wo541075754/article/details/68067872Zookeeper客户端提供了基本的操作,比如,创建会话、创建节点、读取节点、更新数据、删除节点和检查节点是否存在等。但对于开发人员来说,Zookeeper提供的基本操纵还是有一些不足之处。本篇博客就聊聊这些不足之处和两款开源框架ZKClient和Curator。转载 2018-02-25 11:18:01 · 775 阅读 · 0 评论 -
Zookeeper客户端API之节点检查和权限控制(十一)
http://blog.csdn.net/wo541075754/article/details/67636455本篇博客介绍一下原生API的节点检查是否存在和节点操作权限控制。Zookeeper提供的方法的使用方式与前面增删改查操作类似,具体使用案例不再逐一用实例说明。节点检查是否存在原生API的提供4个相应的方法,通过这些方法,可以检查节点是否存在,返回节点转载 2018-02-25 11:17:50 · 667 阅读 · 0 评论 -
Zookeeper客户端API之修改删除节点(十)
http://blog.csdn.net/wo541075754/article/details/67631965修改节点方法同步方法:public Stat setData(final String path, byte data[], int version)1异步方法:public void setData(final String p转载 2018-02-25 11:17:47 · 1086 阅读 · 0 评论 -
Zookeeper客户端API之读取子节点内容(九)
http://blog.csdn.net/wo541075754/article/details/66967706本篇博客介绍一下Zookeeper原声API读取节点内容的使用方法。读取节点内容方法介绍方法Zookeeper提供了两个方法来获取节点内容,同步获取和异步获取:public byte[] getData(String path, bool转载 2018-02-25 11:17:15 · 775 阅读 · 0 评论 -
基于ZooKeeper的分布式锁和队列
在分布式系统中,往往需要一些分布式同步原语来做一些协同工作,上一篇文章介绍了Zookeeper的基本原理,本文介绍下基于Zookeeper的Lock和Queue的实现,主要代码都来自Zookeeper的官方recipe。锁(Lock)完全分布式锁是全局同步的,这意味着在任何时刻没有两个客户端会同时认为它们都拥有相同的锁,使用 Zookeeper 可以实现分布式锁,需要首先定义一个锁节点(l...转载 2017-12-12 12:34:31 · 810 阅读 · 0 评论 -
两种分布式锁实现方案(一)
一。为何使用分布式锁?当应用服务器数量超过1台,对相同数据的访问可能造成访问冲突(特别是写冲突)。单纯使用关系数据库比如MYSQL的应用可以借助于事务来实现锁,也可以使用版本号等实现乐观锁,最大的缺陷就是可用性降低(性能差)。对于GLEASY这种满足大规模并发访问请求的应用来说,使用数据库事务来实现数据库就有些捉襟见肘了。另外对于一些不依赖数据库的应用,比如分布式文件系统,为了保证同一文件在大转载 2016-08-31 11:12:29 · 5814 阅读 · 1 评论 -
基于zookeeper简单实现分布式锁
这里利用zookeeper的EPHEMERAL_SEQUENTIAL类型节点及watcher机制,来简单实现分布式锁。主要思想:1、开启10个线程,在disLocks节点下各自创建名为sub的EPHEMERAL_SEQUENTIAL节点;2、获取disLocks节点下所有子节点,排序,如果自己的节点编号最小,则获取锁;3、否则watch排在自己前面的节点,监听到其删除后,进入第2步转载 2016-08-30 13:55:36 · 1196 阅读 · 0 评论