Zookeeper面试--监听器原理

  1. 创建一个main线程
  2. 在main线程中创建Zookeeper客户端,这个时候就会创建两个线程,一个负责网络的连接connect,一个负责监听listener
  3. 通过connect线程将注册的监听事件发送给Zookeeper
  4. 在Zookeeper的监听列表中将监听的事件添加到监听的列表中
  5. Zookeeper监听到数据或者路径有变化,就会将这个消息发送给listener
  6. listener就会在线程内部调用process()方法(process()方法是一个回调方法,回调方法就是说我写好一个类,但是我自己不调用,让别人通过监听事件来调用我的类。)
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zookeeper是一个分布式协调服务,而Paxos算法是Zookeeper用来实现分布式一致性的核心算法之一。Paxos算法的主要目的是在一个分布式系统中达成一致性,保证多台机器之间的数据一致性。下面是Paxos算法的原理及过程: 1. 基本概念: - Proposer:提出提案的角色,向Acceptor发送提案。 - Acceptor:接收提案的角色,可以接收多个Proposer的提案,并对提案进行投票。 - Learner:观察者角色,只能观察到接收到的提案,不能进行投票。 2. 运行过程: - 阶段1:Proposer向多个Acceptor发送编号为n的提案,请求Acceptor投票。如果Acceptor还没有接受过提案,就接受这个提案,否则拒绝这个提案。 - 阶段2:如果Proposer收到了多数Acceptor的回应,就会发送编号为n的提案给多数Acceptor,请求它们接受这个提案。当一个Acceptor接受提案后,就会发送一个回应给Proposer,提案被接受。 - 阶段3:如果Proposer收到了多数Acceptor的回应,就会将这个提案标记为已提交,然后通知Learner。Learner接收到这个提案后,就知道了这个提案已经被提交了。 3. 原理解释: - 在阶段1中,Proposer发送的提案是编号为n的提案,表示这个提案是第n次提出的。如果Acceptor还没有接受过提案,就接受这个提案,并且会把自己的编号告诉Proposer,以便Proposer知道多数Acceptor的编号。 - 在阶段2中,Proposer会向多数Acceptor发送编号为n的提案,请求它们接受这个提案。如果多数Acceptor接受这个提案,就代表这个提案已经被多数节点接受,达成了一致性。 - 在阶段3中,Proposer会将这个提案标记为已提交,并通知Learner。Learner接收到这个提案后,就知道了这个提案已经被提交了。 总之,Paxos算法通过投票的方式来达成一致性,同时也保证了分布式系统的可靠性和容错性。在Zookeeper中,通过Paxos算法实现分布式一致性,可以用于解决分布式锁、分布式队列等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值