zookeeper是什么

        zookeeper 是一个分布式服务框架,是Apache Hadoop 的一个子项目,主要用来解决分布式应用中经常遇到的一些数据管理问题,
如:数据发布订阅、负载均衡、统一命名服务、master选举、状态同步服务、集群管理服务、配置管理、分布式队列、分布式锁

      设计目标:

     1、简单的数据结构:共享的树形结构,类似文件系统,存储于内存中

     2、可以构建集群:避免单点故障,3-5台就可以组装成集群,超过半数可以对外提供服务

     3、顺序访问:对于每个读请求,zk会分配一个全局的递增编号,利用这个特性可以实现高级协调服务

     4、高性能:基于内存操作,服务于非事物请求,适用于读操作为主的业务场景

      zookeeper目录结构

           bin:存放系统脚本

           conf:存放配置文件

           contrib:zk附加功能支持

           dis-maven: maven 仓库文件

           docs: zk文档

           lib: 依赖的第三方库

           recipes: 经典场景样例代码

           src: zk源码

      zookeeper 特性:

         (1)、会话(session): 

                  客户端与服务端的一次会话连接,本质是TCP长连接,通过会话可以进行心跳检测和数据传输

 

 

        (2)、 数据节点(znode)

                    节点类型:持久节点(persistent)、持久顺序节点(persistent_sequential)、临时节点(ephemeral)、临时顺序节点(ephemeral_sequential)

                    注:对于持久节点和临时节点,同一个znode下,节点的名称是唯一的

               

        (3)、版本 

        (4)、 watcher

                   事件监听、客户端可以在节点上注册监听,当特定的事件发生后,zk会通知到感兴趣的客户端;

                  eventType:NodeCreated、NodeDeleted、NodeDataChanged、NodeChildrenChange

        (5)、ACL

                   zk采用ACL策略来控制权限 zk中有5种权限 :create、delete、write、read、admin

        (6)、集群

    

      

 

posted @ 2019-08-18 19:49  huyang0726  阅读(495)  评论(0编辑  收藏  举报