七、监听器原理

本文详细介绍了Zookeeper监听器的工作原理,包括main线程中创建的connect和listener线程如何交互,以及Zookeeper如何处理数据和路径变更的监听事件。同时,阐述了Zookeeper的数据写入流程,从Client发起请求到数据在集群中同步的过程,确保数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 监听器原理

    • 首先有一个main()线程
    • 在main线程中创建Zookeeper客户端,这时就会创建两个线程。一个负责网络连接通信(connect),一个负责监听(listener)。
    • 通过connect线程将注册的监听事件发给Zookeeper。
    • 在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中。
    • Zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程。
    • listener线程内部调用process()方法

    在这里插入图片描述

  2. 常见的监听

    • 监听节点数据的变化

      get -w path
      
    • 监听子节点增减的变化

      ls -w path
      

Zookeeper写数据的流程

  1. Client向Zookeeper的Server1上写数据,发送一个写请求
  2. 如果Server1不是Leader,那么Server1会把接收到的请求进一步转发给Leader。Leader会将写请求广播给各个Follower,比如Server1和Server3,Server2是Leader。各个Follower写成功后就会通知Leader。这样保证每个Server上都有一份相同的副本。
  3. 当Leader收到半数以上的Server数据写成功了 ,那么就说明数据写成功了。写成功后,Leader会告诉Server1数据写成功了。
  4. Server1再通知Client数据写成功了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值