Zookeeper面试常见的11个连环炮(11)
2023-04-26 来源:飞速影视
分布式锁
处于不同节点上不同的服务,它们可能需要顺序的访问一些资源,这里需要一把分布式的锁。
分布式锁具有以下特性:写锁、读锁、时序锁。
写锁:在zk上创建的一个临时的无编号的节点。由于是无序编号,在创建时不会自动编号,导致只能客户端有一个客户端得到锁,然后进行写入。
读锁:在zk上创建一个临时的有编号的节点,这样即使下次有客户端加入是同时创建相同的节点时,他也会自动编号,也可以获得锁对象,然后对其进行读取。
时序锁:在zk上创建的一个临时的有编号的节点根据编号的大小控制锁。
分布式队列
分布式队列分为两种:
1、当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达,这种是同步队列。
a)一个job由多个task组成,只有所有任务完成后,job才运行完成。
b)可为job创建一个/job目录,然后在该目录下,为每个完成的task创建一个临时的Znode,一旦临时节点数目达到task总数,则表明job运行完成。
2、队列按照FIFO方式进行入队和出队操作,例如实现生产者和消费者模型。
NO10:知道监听器的原理吗?
创建一个Main()线程。在Main()线程中创建两个线程,一个负责网络连接通信(connect),一个负责监听(listener)。通过connect线程将注册的监听事件发送给Zookeeper。将注册的监听事件添加到Zookeeper的注册监听器列表中。Zookeeper监听到有数据或路径发生变化时,把这条消息发送给Listener线程。Listener线程内部调用process()方法。NO11:为什么Zookeeper集群的数目,一般为奇数个?
首先需要明确zookeeper选举的规则:leader选举,要求可用节点数量 > 总节点数量/2。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号