初识zookeeper

zookeeper 作用

起初zookeeper 作为分布式锁的实现去设计的, 但是可以实现注册中心的功能.
提供服务动态发现,服务治理, 维护配置信息,对在zookeeper上注册的信息提供监听服务.
使用者可以订阅监听到各个服务的变化,以及 注册信息的权限管理

zookeeper 使用

分布式锁/共享锁: 创建节点方式来向其他服务宣布锁定,当此节点上有值时说明被其他服务创建使用,使用完后销毁,
其他服务可以对次节点进行监控或者判断,进行锁操作
服务动态发现: 客户端启动后拉取所有节点信息并监听, (服务断开, 服务注册 )等.客户端自主实现负载均衡(因为每个客户端都有所有服务信息)
服务监听:watcher监听, zookeeper提供的客户端监听是一次性的(注意)
防止单点故障: master选举,集群中有一个管理者去调度各个节点,当管理者出现故障时,会启动 master选举 选出新的 master开始管理集群事务,子节点故障后, master会感知到然后剥离集群
集群/单机部署:通常 zookeeper 是由 2n+1 台 server 组成,每个 server 都知道彼此的存在。每个 server 都维护的内存状态镜像以及持久化存储的事务日志和快照。对于 2n+1 台 server,只要有 n+1台(大多数)server 可用,整个系统保持可用。
基于java访问客户端:zkclient、curator
curator 抽象层次较高 更容易方便使用 ,封装了一套fluent 风格的操作 api.
提供 共享锁,分布式锁,leader 选举 的抽象封装 易于使用

zookeeper 原理

zookeeper 内部维护一个内存数据库, 数据结构树状结构,node 中包含list
所有的服务,分布式锁 都属于一个node节点的数据.存放在zookeeper 上
master选举是模拟了Chubby ,进行资源抢占

节点状态信息: 包含 version,创建修改时间,子节点个数,事务ID等字段信息. 通过这些version 字段 可以进行写入校验,也就是乐观锁
Watcher :客户端向服务端注册Watcher监听, 发布/订阅功能
ACL权限: 用法给各个数据添加权限,
权限模式:
Digest:最常用的控制模式,类似于 username:password (需要对密码加盐);
World: 最开放的控制模式,这种权限控制几乎没有任何作用,数据的访问权限对所有用户 开放。 world:anyone
Super: 超级用户,可以对节点做任何操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值