大数据zookeeper面试

什么是zookeeper?

分布式应用协调服务,基于观察者模式设计的服务管理框架,它负责存储和管理大家都关心的数据(文件存储系统+通知机制)

解决什么问题,有什么特性,挂了怎么办,用在什么地方?

特点
1一个leader多个follower组成集群
2leader负责投票的决议和发起,更新系统状态
3follower用于接收客户请求并向客户端返回结果,参与leader发起的投票
4集群只要存活板书以上,zookeeper就能服务
5每个server保存相同的数据副本,无论client链接哪个server数据都一致
6更新请求顺序执行
7原子性:要么都更新成功,要么都失败
8实时性:一段时间内,Client能读到最新数据

应用场景:1统一配置管理->例:hadoop所有节点的配置信息都相同,那么可以将配置信息写入zookeeper的一个znode,各个节点监听这个znode,一旦znode被修改,zookeeper通知各个节点
2软负载均衡->每个应用的Server启动时创建一个EPHEMERAL节点,应用客户端通过读取节点列表获得可用服务器列表,并订阅节点事件,有Server宕机断开时触发事件,客户端监测到后把该Server从可用列表中删除
3集群管理:客户端启动时向zookeeper注册对/servers节点的监控,一旦/server节点发生变化,那么zookeeper就会通知客户端,客户端会重新查询/servers节点下有哪些可以提供服务的机器,客户端从这些机器列表中选择一个可已正常访问就行了

数据节点

PERSISTENT-持久节点
除非手动删除,否则节点一直存在于Zookeeper上
EPHEMERAL-临时节点
临时节点的生命周期与客户端会话绑定,一旦客户端会话失效(客户端与zookeeper连接断开不一定会话失>>效),那么这个客户端创建的所有临时节点都会被移除。
PERSISTENT_SEQUENTIAL-持久顺序节点
基本特性同持久节点,只是增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。
EPHEMERAL_SEQUENTIAL-临时顺序节点
基本特性同临时节点,增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。

监听

有一个main线程,main线程中创建zookeeper客户端,创建两个线程connect(网络连接通信)listener监听

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值