![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zookeeper
文章平均质量分 72
努力的布布
好好运动、好好学习、好好玩、好好吃、好好休息
展开
-
九、Zookeeper 是如何保证数据一致性的
Paxos 算法 :一种基于消息传递且具有高度容错特性的 一致性算法。Paxos 算法解决的问题:就是如何快速正确的在一个分布式系统中对某个数据值达成一致,并且保证不论发生任何异常,都不会破坏整个系统的一致性。1.2、Paxos算法描述在一个Paxos系统中,首先将所有节点划分为Proposer(提议者),Acceptor(接受者),和Learner(学习者)。(注意:每个节点都可以身兼数职)。一个完整的Paxos算法流程分为三个阶段:1.3、Paxos算法流程(1)Prepare: Propos原创 2022-06-08 21:20:53 · 118 阅读 · 0 评论 -
八、ZooKeeper 分布式锁案例
什么叫做分布式锁呢?比如说 “进程1” 在使用该资源的时候,会先去获得锁,"进程 1"获得锁以后会对该资源保持独占,这样其他进程就无法访问该资源,"进程 1"用完该资源以后就将锁释放掉,让其他进程来获得锁,那么通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。那么我们把这个分布式环境下的这个锁叫作分布式锁。分布式锁案例分析:客户端访问集群,客户端访问,常见临时的带序号的节点,序号最小的拿到资源(加锁),走业务逻辑,解锁就是删除改节点。所以每个客户端创建的节点都会判断自己是不是序号最原创 2022-06-07 22:22:31 · 125 阅读 · 0 评论 -
七、Zookeeper分布式协调配置实现
对于刚开始的时候,很多公司的服务器可能是由单个组成,但是随着业务的发展,单一节点的服务无法满足业务的飞速发展,后面就出现了分布式、集群的概念,到了现在形成的微服务,技术的改进能够更好的满足业务的需要。假设我们线上有很多个微服务分布在不同的服务器上,其中一个微服务,我们就叫它 goods-service,当 goods-service的IP地址需要变更的时候,但是 goods-service又对很多其他的程序提供了服务,这个时候如果没有一个统一配置的东西,每一个应用到 goods-service的应用程序都要原创 2022-06-07 11:49:03 · 167 阅读 · 0 评论 -
六、Zookeeper客户端向服务端写数据流程
1、写流程之写入请求直接发送给Leader节点1:客户端给服务器的leader发送写请求,2:leader写完数据后,依次给follower发送写请求,3:follower写完发送ack给leader,4:超过半数以上的都写完,leader则发会ack给客户端。5:之后leader再给其他follower发请求让它们写,6:这些follower写完再发ack给leader。2、写流程之写入请求发送给follower节点1:客户端给follower发送写的请求,2:该follower把这次写请求转发给lea原创 2022-06-05 22:24:33 · 368 阅读 · 0 评论 -
五、Zookeeper客户端基础 API 操作
1)创建一个工程:用eclipse搭建一个maven项目,启动zookeeper服务2)添加pom文件3)拷贝log4j.properties 文件到项目根目录需要在项目的 src/main/resources 目录下,新建一个文件,命名为“log4j.properties”,在文件中填入。2、创建 ZooKeeper 客户端并测试API3ZooKeeper(String connectString, int sessionTimeout, Watcher watcher):String crea原创 2022-06-05 21:36:11 · 101 阅读 · 0 评论 -
四、Zookeeper客户端命令行操作
命令基本语法 功能描述zkCli.sh 启动客户端 默认连接自己zkCli.sh -server CentOSA:2181 启动客户端 连接指定主机的1)查看当前znode中所包含的内容2)查看当前节点详细数据(1)czxid:创建节点的事务 zxid : 每次修改 ZooKeeper 状态都会产生一个 ZooKeeper 事务 ID。事务 ID 是 ZooKeeper 中所有修改总的次序。每次修改都有唯一的 zxid,如果 zxid1 小于 zxid2,那么 zxid1 在 zxid2 之前发生。原创 2022-06-05 12:02:38 · 167 阅读 · 0 评论 -
三、zookeeper集群leader选举机制
SID:服务器ID。用来唯一标识一台ZooKeeper集群中的机器,每台机器不能重复,和myid一致。ZXID:事务ID。ZXID是一个事务ID,用来标识一次服务器状态的变更。在某一时刻,集群中的每台机器的ZXID值不一定完全一致,这和ZooKeeper服务器对于客户端“更新请求”的处理逻辑有关。Epoch:每个Leader任期的代号。没有Leader时同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加zookeeper集群第一次启动的选举过程。现在我们假设有5台服务器,第一启动的选举过程原创 2022-06-04 22:54:02 · 144 阅读 · 0 评论 -
一、zookeeper概述
概述Zookeeper 是一个开源的 分布式的,为分布式框架提供协调服务的 Apache 项目。为什么要用zookeeper?redis是单实例的,基于内存的kv键值对存储数据的结构。redis在集群模式下,数据不是最终一致性的。zookeer作为分布式应用程序协调服务。ZooKeeper 是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务可用于分布式锁,分布式领导选举,配置管理等。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实施它们时,都会进行大量工作来修复不可避免的原创 2022-06-04 22:29:38 · 296 阅读 · 0 评论 -
二、zookeeper集群安装和配置参数说明
安装zookeeper1.解压安装zookeeper-3.4.6.tar.gz解压到usr目录tar -zxf zookeeper-3.4.6.tar.gz -C /usr/修改配置文件zoo_sample.cfg 修改为zoo.cfg数据目录指定为dataDir=/root/zkdata配置集群环境下的节点地址和同步端口和选举端口# The number of milliseconds of each ticktickTime=2000# The number of ticks tha原创 2022-05-20 21:58:16 · 224 阅读 · 0 评论 -
zookeeper介绍及安装使用
为什么要用zookeeper?redis是单实例的,基于内存的kv键值对存储数据的结构。redis在集群模式下,数据不是最终一致性的。zookeer作为分布式应用程序协调服务。ZooKeeper 是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实施它们时,都会进行大量工作来修复不可避免的错误和竞争条件。由于实现这些服务的难度,应用程序最初通常会忽略它们,这使得它们在发生变化时变得脆弱并且难以管理。即使正确完成,这些服务的不同实原创 2022-03-13 23:04:36 · 4012 阅读 · 0 评论