Zookeeper使用要领

java学习 专栏收录该内容
7 篇文章 0 订阅

安装

  • 下载
  • 解压
  • 运行

功能

文件系统+监听通知机制

统一命名服务 状态同步服务 集群管理 分布式应用配置项的管理

四种目录节点

  • 持久化目录节点
  • 持久化顺序编号目录节点
  • 临时目录节点
  • 临时顺序编号目录节点

监听机制

客户端注册监听它关心的目录节点,当目录节点发生变化,zookeeper会通知客户端

单机版的使用

  • 创建节点

    create [-s] [-e] path data acl

    -s表示顺序节点 -e表示临时节点

  • 查看节点内容

    get path

  • 查看子节点

    ls path

  • 更新节点内容

    set path data

  • 删除节点内容

    delete path

    rmr path 删除当前节点及子节点

  • 节点监控

集群搭建

  • 高可用
  • 配置参数
    • tickTime 通信心跳数,毫秒
    • initLimit LF初始通信时限
    • syncLimit LF同步通信时限
    • dataDir 数据文件目录+数据持久化路径
    • clientPort 客户端连接端口
  • 选举机制
    • 半数机制,半数以上机器存活,集群可用
    • Leader通过内部选举机制临时产生
    • 投票优先投给服务器id较大的

zookeeper客户端连接

  • ZooInspector

####Java操作Zookeeper

  • 节点的创建修改删除
  • 节点时间监听
  • 使用zkClient工具

监听原理

  • 首先要有一个主线程
  • 在主线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connect),一个负责监听(listener)
  • 通过connect线程将注册的监听事件发送给Zookeeper
  • 在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中
  • Zookeeper监听到有数据或路径变化,就将这个消息发送给listener线程
  • listener线程内部调用了process( )方法

CAP理论

  • 一个分布式系统不可能同时满足: 一致性(Consistency),可用性(Available),分区容错性(Partition Tolerance)
  • Zookeeper保证了CP,不能保证每次服务请求的可用性,在极端环境下,Zookeeper可能会丢弃一些请求,需要重新请求才能获取结果
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值