深入浅出Zookeeper(七):Leader选举

2020-06-14
阅读 26 分钟
6.9k
为什么是最简单的方式呢?我们想象一下,当我们写数据到Leader时,Leader写入自己的一份数据后,可能会做副本到Follower,那么拷贝的数量、及所在的位置都由该Leader来控制。但如果是多Leader调度,就要涉及到数据分区,请求负载均衡等问题了。

深入浅出Zookeeper(六):客户端的请求在服务器中经历了什么

2020-05-23
阅读 28 分钟
3.9k
当我们向zk发出一个数据更新请求时,这个请求的处理流程是什么样的?zk又是使用了什么共识算法来保证一致性呢?带着这些问题,我们进入今天的正文。

深入浅出Zookeeper(五):BadVersionException到底是怎么一回事

2020-04-19
阅读 3 分钟
3.2k
最近在开发时偶尔会观测到zk报出BadVersionException,后在搜索引起上得知了是乐观锁相关的问题,很快就解决了问题。不过学而不思则罔:无论是单体应用还是分布式系统,在运行过程中总要有一种机制来保证数据排他性。接下来,我们就来看看zk是如何实现这种机制的。

深入浅出Zookeeper(四):Watch实现剖析

2020-04-08
阅读 24 分钟
6.4k
本文首发于泊浮目的简书:[链接]版本日期备注1.02020.4.8文章首发1.12020.4.18优化小结部分描述,使其更加详细易懂1.22020.8.10删除部分不重要的代码,减少篇幅,优化描述方式1. 前言本文面向读者:有java基础并对zk源码实现感兴趣的同学。用过zookeeper的同学都知道watch是一个非常好用的机制,今天我们就来看看它的实现...

深入浅出Zookeeper(三):会话管理

2020-03-29
阅读 12 分钟
5.2k
我们知道zookeeper是一个分布式协同系统。在一个大型的分布式系统中,必然会有大量的client来连接zookeeper。那么zookeeper是如何管理这些session的生命周期呢?带着这个问题,我们进入今天的正文。

深入浅出Zookeeper(一):概览

2020-01-29
阅读 2 分钟
2.7k
这个可以通过官网来看[链接]。第一眼看过去,我们就知道它是一个分布式协同系统。并且提供了一些分布式系统中较常用的功能:如配置管理、DNS服务、分布式协同和组成员管理。