zooKeeper 学习系列

zooKeeper简介:略。

知识要点:

    1、源代码开放 ---  可以免费的获取和使用研究源代码

    2、分布式协调服务,它解决分布式数据一致性的问题

            A:顺序一致性  ---  从一个客户端发起一个事务请求。最终严格按照发起的顺序,被应用的zooKeeper去。

            B:原子性        ----  所有事物请求的处理结果,在所有机器上是一样的。

            C:单一视图    --- 无论客户端连接哪个zooKeeper服务器,看到的视图是一样的。

            D:可靠性    --- 一旦服务器完成了事务,并完成了客户端的响应。引起的服务状态变更,会保留下来。

            E:实时性    ---  zooKeeper保证在一定时间内,客户端一定会从服务端读取到数据状态。

    3、高性能

    4、调用zooKeeper提供的接口来解决一些分布式应用的实际问题

典型的应用场景:

        1、数据发布/订阅

zooKeeper 学习系列

        2、负载均衡

            zooKeeper 学习系列

        3、命名服务

            zooKeeper 学习系列

        4、分布式协调/通知

zooKeeper 学习系列

        

ZooKeeper基本概念:

    集群角色:

            zooKeeper 学习系列

会话:

    zooKeeper 学习系列

  数据节点:

    zooKeeper 学习系列

版本:

    zooKeeper 学习系列

watcher

    zooKeeper 学习系列

ACL权限控制:对节点授权,保障zk集群节点的安全。

    zooKeeper 学习系列

现在,安装zk。集群,三个节点。开了三个虚拟机,其中一个master,两个slave。

安装zooKeeper主要是配置文件。上传,解压。

在zooKeeper安装目录下的conf目录中,将 zoo_sample.cfg 改为 zoo.cfg


 配置文件详解:

   #zookeeper的快照文件位置(自行定义)

    dataDir =             

    #zookeeper的端口(每台服务都可以配置自己可用的端口)

    ClientPrort = 2181

    ZK的配置模板

    server.id=host:port:port

    id : 表示服务的id(自定义)

    host : 表示地址。

    port : 端口如(2888)

    port : 端口如(3888)

在zoo.cfg 的末尾,增加如下:

zooKeeper 学习系列

hadoop11,hadoop12,hadoop13.已经在/etc/hosts 中配置了。

分别对应:虚拟机ip    

zk集群只要有一半的机器启动,就可以启动。


这三台机器两个

是follower

[[email protected] bin]# ./zkServer.sh start

ZooKeeper JMX enabled by default
Using config: /usr/app/zookeeper-3.4.8/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[[email protected] bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/app/zookeeper-3.4.8/bin/../conf/zoo.cfg

Mode: follower

一个是 leader

[[email protected] bin]# ./zkServer.sh start

ZooKeeper JMX enabled by default
Using config: /usr/app/zookeeper-3.4.8/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[[email protected] bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/app/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: leader