青云博客 记录、分享

Zookeeper 分布式锁如何实现

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

zhanxuewei zhanxuewei Published on 2024-04-24

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

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

zhanxuewei zhanxuewei Published on 2024-04-24

Zookeeper脑裂是什么原因导致的

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

zhanxuewei zhanxuewei Published on 2024-04-24

ZooKeeper 的持久化机制

Zookeeper的持久化机制主要涉及两种数据存储方式:内存存储和磁盘存储。 内存存储:这是Zookeeper默认的数据存储方式。在内存存储中,Zookeeper将所有数据保存在内存中,而不是磁盘上。当Zookeeper关闭或发生故障时,内存中的数据会丢失。为了提高性能,Zookeeper采用了延迟

zhanxuewei zhanxuewei Published on 2024-04-24

Zookeeper 的典型应用场景

Zookeeper 的典型应用场景包括: 数据发布与订阅:这是 Zookeeper 的一种典型应用场景。发布者将数据发布到 ZooKeeper 节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。 分布式锁:Zookeeper 可以用来实现分布式锁。利用 ZooKeeper 的节点唯一

zhanxuewei zhanxuewei Published on 2024-04-24

Zookeeper 是如何解决脑裂问题的

Zookeeper的解决方案是通过过半机制来避免脑裂问题的发生。 具体来说,在Zookeeper的领导者选举过程中,如果某台ZookeeperServer获得了超过半数的选票,则此ZookeeperServer就可以成为Leader。举个简单的例子,如果现在集群中有5台ZookeeperServer

zhanxuewei zhanxuewei Published on 2024-04-24

Zookeeper 的 CAP 问题上做的取舍

Zookeeper 在 CAP 问题上选择了 CP,也就是说,在一致性和可用性之间,Zookeeper 选择了强一致性。 Zookeeper 是一个分布式协调服务,它的主要职责是维护整个系统的状态,并提供一致性的服务。因此,为了保证数据的一致性,Zookeeper 必须确保在分布式节点之间进行同步的

zhanxuewei zhanxuewei Published on 2024-04-24

ZAB 和 Paxos 算法的联系与区别

ZAB(ZooKeeper Atomic Broadcast)算法和Paxos算法都是分布式系统中用于实现数据一致性的算法。 两者的主要联系在于它们都采用了类似领导者的选举机制,通过多数派的投票来保证系统的稳定性。在ZAB中,这体现在它使用了一种类似于Paxos的领导者选举过程,其中有一个领导者(l

zhanxuewei zhanxuewei Published on 2024-04-24

ZooKeeper 集群中服务器之间是怎样通信的

ZooKeeper集群中的服务器之间使用TCP协议进行通信,这个通信过程包括以下关键部分: Leader和Follower:在ZooKeeper集群中,有一个服务器被选为领导者(Leader),其余服务器成为跟随者(Follower)。Leader负责处理所有客户端请求,而Followers主要用于

zhanxuewei zhanxuewei Published on 2024-04-24

RocketMQ 的 Producer 是如何发送消息的?

RocketMQ的Producer有三种消息发送模式: 同步发送(Sync Send):这是默认的发送模式。在同步发送模式下,发送者发送一条消息后会等待 Broker 的响应,直到 Broker 确认收到消息并返回结果。如果发送失败,将会抛出异常。这种模式下,Producer 可以确保消息成功发送到

zhanxuewei zhanxuewei Published on 2024-04-23
Previous Next