
zookeeper
文章平均质量分 81
Micrle_007
这个作者很懒,什么都没留下…
展开
-
基于zookeeper实现分布式读写锁
基于zookeeper 实现分布式读写锁分布式锁如果不同的系统或一个系统的不同主机共享了一组资源,那么访问这些资源的时候,就需要通过一些互斥的手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要使用分布式锁了。读写锁读写锁是同一时刻可以允许多个读操作访问,但是在写操作访问时,所有的读操作和其他写操作均被阻塞。Java 并发包提供的读写锁实现是ReentantReadWriteLock。分布式读写锁思路下面我们介绍基于zookeeper 如何实现分布式读写锁:如何定义锁节点:通转载 2021-12-23 15:44:25 · 931 阅读 · 0 评论 -
zookeeper保证单一视图
由于ZooKeeper的数据模型简单且全部在内存中,ZooKeeper的速度非常快。它提供了一系列保证(Guarantees):• 顺序一致性(Sequential Consistency)• 原子性(Atomicity)• 单一视图(Single System Image)• 可靠性(Reliability)• 实时性(Timeliness)下面将结合源码(3.4.10版本)介绍下,ZooKeeper如何保证单一视图(Single System Image)。一、ZooKe..转载 2021-06-15 21:46:22 · 291 阅读 · 0 评论 -
zookeeper做分布式配置中心
上一篇(基于zookeeper实现分布式配置中心(一))讲述了zookeeper相关概念和工作原理。接下来根据zookeeper的特性,简单实现一个分布式配置中心。配置中心的优势1、各环境配置集中管理。2、配置更改,实时推送,jvm环境变量及时生效。3、依靠配置变更,动态扩展功能,减少二次上线带来的成本。4、减少开发人员、运维人员修改配置带来的额外开销。配置中心架构图配置中心功能1、配置管理平台中,操作人员可以创建项目所属系统、应用名称、实例名称、配置分组等信息。原创 2020-11-10 21:32:31 · 585 阅读 · 0 评论 -
zookeeper的zxid
zxid = zookeeper transaction id实现中Zxid是一个64为的数字,它高32位是epoch用来标识Leader关系是否改变,每次一个Leader被选出来,它都会有一个新的epoch。低32位是个递增计数。致使ZooKeeper节点状态改变的每一个操作都将使节点接收到一个Zxid格式的时间戳,并且这个时间戳全局有序。也就是说,每个对节点的改变都将产生一个唯一的Zxid。如果Zxid1的值小于Zxid2的值,那么Zxid1所对应的事件发生在Zxid2所对应的事件之前。实际上,原创 2020-10-10 09:21:10 · 2331 阅读 · 1 评论 -
zookeeper leader选举过程
一、前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。二、Leader选举 2.1 Leader选举概述 Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。 (1) 服务器初始化启动。 (2) 服务器运行期间无法和Leader保持连接。 下面就两种情况进行分析讲解。 1. 服务器启转载 2020-10-10 09:10:46 · 240 阅读 · 0 评论 -
zookeeper分布式锁
1.1.2. 图解: zookeeper分布式锁的原理理解了锁的原理后,就会发现,Zookeeper 天生就是一副分布式锁的胚子。首先,Zookeeper的每一个节点,都是一个天然的顺序发号器。在每一个节点下面创建子节点时,只要选择的创建类型是有序(EPHEMERAL_SEQUENTIAL 临时有序或者PERSISTENT_SEQUENTIAL 永久有序)类型,那么,新的子节点后面,会加上一个次序编号。这个次序编号,是上一个生成的次序编号加一比如,创建一个用于发号的节点“/test/lock原创 2020-08-25 15:07:35 · 295 阅读 · 0 评论 -
zookeeper核心原理(Watcher、事件和状态)
zookeeper主要是为了统一分布式系统中各个节点的工作状态,在资源冲突的情况下协调提供节点资源抢占,提供给每个节点了解整个集群所处状态的途径。这一切的实现都依赖于zookeeper中的事件监听和通知机制。zookeeper中的事件和状态事件和状态构成了zookeeper客户端连接描述的两个维度。注意,网上很多帖子都是在介绍zookeeper客户端连接的事件,但是忽略了zookeeper客户端状态的变化也是要进行监听和通知的。这里我们通过下面的两个表详细介绍zookeeper中的事件和状态(zoo转载 2020-05-09 12:03:27 · 427 阅读 · 0 评论 -
zookeeper会话超时
1、会话概述在ZooKeeper中,客户端和服务端建立连接后,会话随之建立,生成一个全局唯一的会话ID(Session ID)。服务器和客户端之间维持的是一个长连接,在SESSION_TIMEOUT时间内,服务器会确定客户端是否正常连接(客户端会定时向服务器发送heart_beat,服务器重置下次SESSION_TIMEOUT时间)。因此,在正常情况下,Session一直有效,并且ZK集群所有...原创 2020-05-05 14:53:17 · 725 阅读 · 0 评论 -
zookeeper集群节点为什么是奇数个
无论是公司的生产环境,还是自己搭建的测试环境,Zookeeper集群的节点个数都是奇数个。至于为什么要是奇数个,以前只是模糊的知道是为了满足选举需要,并不知道详细的原因。最近重点学习zookeeper,了解到其中的原理,现将其整理记录下来。首先需要明确zookeeper选举的规则:leader选举,要求 可用节点数量 > 总节点数量/2 。注意 是 > , 不是 ≥。注:为...转载 2020-01-06 21:17:30 · 312 阅读 · 0 评论