青云博客 分享、记录

zk集群数据是如何同步的

Zookeeper集群的数据同步过程如下: 集群启动时,会先进行领导者选举,确定哪个节点是Leader,哪些节点是Follower和Observer。 Leader会和其他节点进行数据同步,采用发送快照和发送Diff日志的方式。 集群在工作过程中,所有的写请求都会交给Leader节点来进行处理,从节

詹学伟 发布于 2024-04-24

zk 节点宕机如何处理

Zookeeper 必须集群部署,推荐配置不少于 3 个节点。Zookeeper 自身也要保证当一个节点宕机时,其他节点会继续提供服务。 如果是一个 Follower 宕机,还有 2 台服务器提供访问,因为 Zookeeper 上的数据是有多个副本的,数据并不会丢失。 如果是一个 Leader 宕机

詹学伟 发布于 2024-04-24

Zookeeper 是如何保证事务的顺序一致性的

Zookeeper保证事务的顺序一致性是通过两个机制实现的:事务的严格串行化和锁定机制。 事务的严格串行化:在Zookeeper中,所有的写操作都必须经过一个称为“提交”(commit)的阶段。在一个事务还没有被提交之前,任何客户端都无法读取该事务。 这种机制确保了所有事务按照严格的顺序执行,保证了

詹学伟 发布于 2024-04-24

Zookeeper 的通知机制是什么

Zookeeper的机制可以感知某些事件的发生,并将这些事件通知给客户端。这种通知机制是异步的,也就是说,当事件发生时,Zookeeper会选择一种方式将事件通知给客户端,而不需要等待客户端的回应。 具体来说,Zookeeper允许客户端向服务端的某个Znode注册一个Watcher监听,当这个Zn

詹学伟 发布于 2024-04-24

Zookeeper 集群中是怎样选举leader的

zookeeper集群中服务器被划分为以下四种状态: LOOKING:寻找Leader状态。处于该状态的服务

詹学伟 发布于 2024-04-24

ZAB 协议

ZAB协议(Zookeeper Atomic Broadcast)是Zookeeper中用于实现分布式一致性的协议。该协议旨在确保分布式系统中的数据一致性和可靠性,并具有以下特点: 支持崩溃恢复和消息广播:ZAB协议能够在Leader节点崩溃或因其他原因导致Leader缺失时,自动进入崩溃恢复模式,

詹学伟 发布于 2024-04-24

为什么Zookeeper集群的数目一般为奇数个

Zookeeper集群的数目一般为奇数个,主要是出于以下两方面的考虑: 防止脑裂。如果Zookeeper集群的节点数为偶数个,那么在集群发生脑裂并分成两个均等子集群的情况下,可能导致整个Zookeeper集群都无法正常工作。而如果集群节点数为奇数个,则即使发生脑裂并分成两个子集群,每个子集群都至少会

詹学伟 发布于 2024-04-24

Zookeeper 分布式锁如何实现

ZooKeeper可以用于实现分布式锁,主要的思路是利用ZooKeeper的临时顺序节点唯一性和顺序性的特点来实现。具体实现步骤: 1. 创建一个ZooKeeper节点作为锁的根节点,例如 /locks。 2. 当一个线程需要获取锁时,它在锁的根节点下创建一个临时顺序节点,例如 /locks/loc

詹学伟 发布于 2024-04-24

Zookeeper 对节点的 watch 监听通知是永久的吗

在 ZooKeeper 中,节点监视(watch)通知不是永久的,而是一次性触发。当客户端注册一个监视事件,例如监视一个节点的数据变化或子节点的变化时,如果相应的节点状态发生了变化,ZooKeeper 会通知客户端,并触发监视事件。一旦监视事件被触发,它会从客户端的监视列表中删除,客户端需要再次显式

詹学伟 发布于 2024-04-24

Zookeeper脑裂是什么原因导致的

Zookeeper脑裂是指一个集群环境中出现了多个Master节点,导致数据不一致和数据问题。这种情况通常发生在网络故障导致集群中部分节点失去与Master节点的连接,而在这些节点看来,Master节点已经失效,因此它们会选举新的Master节点。在这个过程中,可能会出现多个Master节点,导致脑

詹学伟 发布于 2024-04-24