zoukankan      html  css  js  c++  java
  • zookeeper:3

    • zoo.cfg配置文件
    1. tickTime=2000  :zookeeper中最小的时间单位长度 (ms)。
    2. initLimit=10  :follower节点启动后与leader节点完成数据同步的时间。
    3. syncLimit=5 :leader节点和follower节点进行心跳检测的最大延时时间。
    4. dataDir=/tmp/zookeeper  :表示zookeeper服务器存储快照文件的目录。
    5. dataLogDir :表示配置 zookeeper事务日志的存储路径,默认指定在dataDir目录下。
    6. clientPort :表示客户端和服务端建立连接的端口号: 2181。
    • zookeeper中的一些概念
    • 数据模型:zookeeper的数据模型和文件系统类似(树结构,无限级),每一个节点称为:znode.  是zookeeper中的最小数据单元每一个znode上都可以保存数据挂载子节点。 从而构成一个层次化的属性结构。
    • 节点特性:
    1. 持久化节点  : 节点创建后会一直存在zookeeper服务器上,直到主动删除。
    2. 持久化有序节点 :每个节点都会它的一级子节点维护一个顺序。
    3. 临时节点 : 临时节点的生命周期和客户端的会话保持一致。当客户端会话失效,该节点自动清理。
    4. 临时有序节点 : 在临时节点上多勒一个顺序性特性。
    • 会话:未连接状态-------->     连接中状态 ------------>        已连接状态------------->     断开状态

    • zookeeper命令操作
    sh zkServer.sh  start  //bin目录下启动服务
    
    sh zkCli.sh -server localhost:2181   //连接到客户端
    
    ls /  //查看目录
    
    help    //查看命令

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

    -s 表示节点是否有序
    
    -e 表示是否为临时节点
    
    默认情况下,是持久化节点
      • get path [watch]

    获得指定 path的信息
      • set path data [version]

    修改节点 path对应的data
    
    乐观锁的概念:数据库里面有一个 version 字段去控制数据行的版本号
      • delete path [version]

    删除节点
    • watcher:zookeeper提供了分布式数据发布/订阅,zookeeper允许客户端向服务器注册一个watcher监听。当服务器端的节点触发指定事件的时候会触发watcher服务端会向客户端发送一个事件通知。watcher的通知是一次性,一旦触发一次通知后,该watcher就失效。
    • ACL:zookeeper提供控制节点访问权限的功能,用于有效保证zookeeper中数据的安全性。避免误操作而导致系统出现重大事故。CREATE /READ/WRITE/DELETE/ADMIN。
    • 数据节点stat的信息

    cversion = 0       子节点的版本号
    
    aclVersion = 0     表示acl的版本号,修改节点权限
    
    dataVersion = 1    表示的是当前节点数据的版本号

    czxid    节点被创建时的事务ID

    mzxid   节点最后一次被更新的事务ID

    pzxid    当前节点下的子节点最后一次被修改时的事务ID

    ctime = Sat Aug 05 20:48:26 CST 2017

    mtime = Sat Aug 05 20:48:50 CST 2017

    ephemeralOwner = 0x0   创建临时节点的时候,会有一个sessionId 。 该值存储的就是这个sessionid

    dataLength = 3    数据值长度

    numChildren = 0  子节点数

    • 数据存储:内存数据和磁盘数据
    1. zookeeper会定时把数据存储在磁盘上。
    2. DataDir = 存储的是数据的快照:快照: 存储某一个时刻全量的内存数据内容
    3. DataLogDir 存储事务日志

    上图命名格式:log.zxid

    • 查看事务日志的命令:java -cp :/opt/zookeeper-3.4.10/lib/slf4j-api-1.6.1.jar:/opt/zookeeper-3.4.10/zookeeper-3.4.10.jar  org.apache.zookeeper.server.LogFormatter log.3
    • zookeeper 有三种日志
    1. zookeeper.out  :运行日志。
    2. 快照  :存储某一时刻的全量数据。
    3. 事务日志 :事务操作的日志记录。
  • 相关阅读:
    Python多线程join的用法
    Python多线程互斥锁
    python Queue模块
    精度计算————乘法(大数乘小数)
    精度计算——大数阶乘
    python埃式筛法求素数
    Scala io操作
    scala io,ubuntu常见配置
    大数据之scala高级语法学习
    大数据之scala基本语法学习
  • 原文地址:https://www.cnblogs.com/LJing21/p/10523679.html
Copyright © 2011-2022 走看看