• Zookeeper01——zk的基本信息和安装


    一、Zookeeper的基本信息

    1.1背景

    无论在前面,我们学习hdfs,还是学习redis集群,我们都会使用到一个zookeeper进行选举。这导致了Redis的产生。

    我们知道,在先前我们使用Zookeeper的时候,我们使用三个节点。一个leader节点和两个follower节点,进行选举。所以,在集群模式下,leader这个节点,理论上存在单点故障问题,但是实际上,这个leader确实是及其high available的。

      Zookeeper有两种可运行的状态:1.可用状态。2.不可用状态。
    
      不可用状态恢复到可用状态应该越来越好。
    

    1.2.Zookeeper不是一个数据库

    Zookeeper是一个文件系统,结构上是一个目录树结构(类似Linux的目录树),但是却没有文件和文件夹的定义,这个目录树的各个分支,实际上仅仅是一个node(节点),所以不能存很多的文件和数据。我们在观察一些老项目的时候,往往会看到这样的一个现象。分布式项目,在进行跃迁的时候,刚开始会使用zk进行存储数据,但是随着技术的发展,新的发展会剔除存储这个功能的使用,为什么呢?

    zk在设计的时候,任何方向设计都是以“快速”优先,而速度快,往往带来的缺陷是在数据传输的时候,不能传输(大文件)。相反,我们学习过的redis,可以作为一个数据库进行使用。zk的node可以存储小量数据,这个数据量大小约1MB。
    

    1.3.临时节点和持久节点

    每个client在连接的客户端的时候,都会产生一个session。依托于session,我们可以知道,有的节点是临时节点和持久节点。

    有了临时节点的存在,建立了一个会话,创建了一把锁,当session在得时候,锁就存在,当session消失的时候,锁就消失,这把锁不需要再去设计其他的业务逻辑代码。

    1.4.特征&保障

    • 顺序一致性-客户端的更新将发送顺序应用
    • 原子性-更新成功或失败,没有部分结果
    • 统一视图-无论客户端连接那个服务器,客户端都将看到相同的服务视图
    • 可靠性-一旦应用了更新,它将从那时起持续到客户端覆盖更新
    • 及时性-系统的客户视图保证在特定时间内是最新的

    二、安装

    2.1.获取源

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz
    

    2.2.解压,移动到opt目录

    tar -xf apache-zookeeper-3.5.5-bin.tar.gz
    mv apache-zookeeper-3.5.5-bin zookeeper-3.5.5
    mv zookeeper-3.5.5 /opt
    

    2.3.修改配置文件

    mv zoo_sample.cfg zoo.cfg
    vim zoo.cfg
    修改dataDir=/var/zk
    
    server.1=192.168.118.151:2888:3888
    server.2=192.168.118.152:2888:3888
    server.3=192.168.118.153:2888:3888
    server.4=192.168.118.154:2888:3888
    
    mkdir /var/zk
    
    echo 1 >> /var/zk/myid
    echo 2 >> /var/zk/myid
    echo 3 >> /var/zk/myid
    echo 4 >> /var/zk/myid
    

    2.4.修改ZOOKEEPER_HOME

    vim /etc/profile
    
    export ZOOKEEPER_HOME=/opt/zookeeper-3.5.5
    export PATH=.:$PATH:$ZOOKEEPER_HOME/bin
    
    source /etc/profile
    

    2.5.开启zk

    zkServer.sh start
    

    2.6.开启zkcli.sh

    zkcli.sh
    

    2.7.zkcli.sh的使用

    ls / 查看node
    create /ooxx "" 创建一个ooxx节点
    get -s /ooxx 获取一个ooxx
    
    • 关于cZxid,mZxid,pZxid
    这个/ooxx的数据最大1M,这个数据也是二进制安全的
    
    cZxid是事务id,递增的。 
    
    cZxid,mZxid,pZxid 代表create modify parent
    
    pZxid的子节点与最近一次创建/删除的时间,与本节点/子节点有关,与孙子节点无关
    
    • zkCli的每次会话都会创建一个SessionId,保存在日志文件中

    • 端口的使用

      • 3888:选主投票用的
      • 2888:leader接受write请求用的
  • 相关阅读:
    阅读ajax.pdf
    XPath 学习
    随想
    Angular JS 学习
    Angular JS 学习
    URL Rewrite in IIS with Regular Pattern
    LinQ In Action 学习第四章
    GC垃圾回收
    jvm底层
    类加载流程
  • 原文地址:https://www.cnblogs.com/littlepage/p/11543093.html
Copyright © 2020-2023  润新知