![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zookeeper
乐乐Java路漫漫
热衷于互联网JAVA开发,对新技术的探索孜孜不倦,对问题的研究废寝忘食,希望大家一起探索
展开
-
zookeeper分布式锁
/** * 在指定时间内尝试获取锁 * zookeeper 尝试获取锁,首先获取可重入锁对象,然后尝试获取锁, * 若当前线程已获取该锁,则将该锁的lockCount + 1并返回获取锁成功 * 若不是当前线程,则首先在/mylock目录下创建一个临时顺序节点,然后获取该目录下的所有临时节点, * 判断当前节点是否获取到锁(即是否是最小的节点),若是则返回获取锁成功,若不是则创建一个watcher监听它的上一个节点, * 若直到有效时间截止还没原创 2021-07-18 11:38:43 · 68 阅读 · 0 评论 -
BASE 理论简介
BASE 是 Basically Available(基本可用)、Soft state(软状态)和 Eventually consistent(最终一致性)三个短语的简写。是 CAP 定理对于一 致性与可用性权衡的结果。 BASE 理论的核心思想是:即使无法做到强一致性,但每个系统都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。(1) 基本可用基本可用是指分布式系...原创 2020-04-02 09:54:38 · 1267 阅读 · 0 评论 -
CAP 定理简介
1.简介CAP定理指的是一个分布式系统中, Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性)三者不可兼得。一致性C:分布式系统中多个主机之间是否能够保持数据一致的特性。即当系统数据发生更新操作后,各个主机中的数据仍然处于一致的状态。可用性A:系统提供的服务必须一直处于可用的状态,对于用户的每一个请求,系统总是可...原创 2020-04-02 09:45:01 · 646 阅读 · 0 评论 -
zookeeper Leader 选举
(1) Leader 选举中的基本概念A、myid也称为 ServerId,这是 zk 集群中服务器的唯一标识。例如,有三个 zk 服务器,那么编号分别是 1,2,3。B、 逻辑时钟逻辑时钟,Logicalclock,是一个整型数,该概念在选举时称为 logicalclock,而在选举结束后称为 epoch。即 epoch 与 logicalclock 是同一个值,在不同情况下的不同名...原创 2020-03-30 22:58:07 · 137 阅读 · 0 评论 -
zookeeper恢复模式的三个原则
当集群正在启动过程中,或 Leader 崩溃后,集群就进入了恢复模式。对于要恢复的数据状态需要遵循三个原则。(1) Leader 的主动出让原则若集群中 Leader 收到的 Follower 心跳数量没有过半,此时 Leader 会自认为自己与集群的连接已经出现了问题,其会主动修改自己的状态为 LOOKING,去查找新的 Leader。为了防止集群出现脑裂。而其它 Server ...原创 2020-03-30 21:48:32 · 687 阅读 · 0 评论 -
zk同步模式与广播模式
(1) 初始化广播前面我们说过,恢复模式具有两个阶段:Leader 选举与初始化同步(广播)。当完成 Leader选举后,此时的 Leader 还是一个准 Leader,其要经过初始化同步后才能变为真正的 Leader。具体过程如下:为了保证 Leader 向 Learner 发送提案的有序,Leader 会为每一个 Learner 服务器准备一个队列Leader 将那些没有被各个...原创 2020-03-30 21:29:00 · 1143 阅读 · 0 评论 -
zk集群的三类角色
为了避免 Zookeeper 的单点问题,zk 也是以集群的形式出现的。zk 集群中的角色主要有以下三类:Leader:事务请求的唯一处理者,也可以处理读请求。Follower:可以直接处理客户端的读请求,并向客户端响应;但其不会处理事务请求,其只会将客户端事务请求转发给Leader来处理;对Leader发起的事务提案具有表决权;同步 Leader 中的事务处理结果;Leader 选举过程...原创 2020-03-30 21:13:57 · 1216 阅读 · 0 评论 -
ZAB 协议简介
ZAB ,Zookeeper Atomic Broadcast,zk 原子消息广播协议,是专为 ZooKeeper 设计的一种支持崩溃恢复的原子广播协议,在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性。...原创 2020-03-30 21:03:08 · 2303 阅读 · 0 评论 -
Paxos 与拜占庭将军问题
拜占庭将军问题是由 Paxos 算法作者莱斯利·兰伯特提出的点对点通信中的基本问题。该问题要说明的含义是,在不可靠信道上试图通过消息传递的方式达到一致性是不可能的。所以,Paxos 算法的前提是不存在拜占庭将军问题,即信道是安全的、可靠的,集群节点间传递的消息是不会被篡改的。一般情况下,分布式系统中各个节点间采用两种通讯模型:共享内存(Shared Memory)、消息传递(Messag...原创 2020-03-30 20:52:12 · 1630 阅读 · 0 评论