大数据秋招学习笔记2

ZooKeeper基础知识:
1)ZooKeeper是一个基于观察者模式的分布式服务管理框架,负责存储与管理数据,接收观察者注册,一旦数据状态发生变化 ,会通知观察者做出相应反应。
2)ZooKeeper特点:
(1)一个leader,多个follower组成的集群。
(2)集群中只要有半数以上节点存活,就能正常服务。
(3)全局数据一致,每个server上保存相同的数据副本。
(4)更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行。
(5)数据更新原子性。
(6)实时性。
3)应用场景:
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
4)ZooKeeper选举机制:
ZooKeeper集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。Zookeeper虽然在配置文件中并没有指定Master和Slave。但是,Zookeeper工作时,是有一个节点为Leader,其他则为Follower,Leader是通过内部的选举机制临时产生的。半数以上节点选择某节点,该节点就成为Leader,选举结束。
5)监听器原理:
常见的监听:1.监听节点数据的变化 2.监听子节点增减的变化
(1)首先要有一个main()线程
(2)在main()线程中创建Zookeeper客户端,这时会创建两个线程,一个负责网络连接通信(connect),一个负责监听(listener)。
(3)通过connect线程将注册的监听事件发送给zookeeper。
(4)将注册的监听事件添加到zookeeper的注册监听器列表中。
(5)zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程。
(6)listener线程内部调用了process()方法。
6)写数据流程:
(1)client向zookeeper的server1上写数据,发送一个写请求。
(2)若server1不是leader,server1则会将请求进一步转发给leader,leader会将写请求广播给各个server,各server写成功后会通知leader。
(3)当leader收到半数以上server数据写成功,就认为数据写成功 ,leader会告诉server1数据写成功。
(4)server1告诉client数据写成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值