zookeeper(二):zookeeper概念 初步介绍

zookeeper(二):zookeeper概念 初步介绍

    前文简单介绍了zookeeper的安装细节,本文对zookeeper的概念进行一个简单的了解。

    一、什么是zookeeper?

    zookeeper是一个高性能的分布式协调工具。

    他有着以下的优点:

  1. 一致性和可靠性:一个客户端发起的事务,会被作用到每一个服务器,成功或者失败都是一致的;
  2. 单一视图:从任何服务器查看数据得到的结果是一样的;
  3. 顺序性:zk会对每一个Client发出的请求编号,然后按照编号执行;
  4. 高可用:zk会有一个leader和多个follower,一旦leader宕机,只要半数以上的服务器还存活,就可以通过paxos算法选举出新的leader;
  5. 数据结构简单:类似linux的树状结构,简单使用;

    zookeeper的数据模型:


    1、zookeeper的每一个节点都可以有多个子目录,同时可以存储数据。

    2、zookeeper的节点有永久节点和临时节点,生命周期为一次会话结束。

    二、zookeeper配置文件的相关解释

    首先来看如下的图片:

    

扫描二维码关注公众号,回复: 1882371 查看本文章

  1. tickTime:表示一次心跳的间隔时间,单位为ms;
  2. initLimit:客户端连接ZK的时候,能够忍受的心跳次数限制;
  3. syncLimit:ZK之间进行通信,能够忍受的心跳次数限制;
  4. clientPort:对外提供服务的端口号;
  5. server.0=ip:port1:prot2:0表示myid下的内容,表示服务器的编号,port1表示服务器之间的通信端口,port2表示服务器的选举端口;

    三、基础的ZK命令

    上文我们完成了ZK的安装,本文我们简单了解一下,ZK的基本命令,怎么说呢?有点像redis。

    get path--可以获得该节点的信息--包括其数据,子目录等内容;

    set path value--可以设置该节点的value;

    create path value--可以创建一个新的节点,如果重复会返回提示信息;

    

    以上为操作截图,我们解释下红框框里头的表示:

  1. ctime和cZxid是一对:一个表示创建时间,一个表示创建的事件编号;
  2. mtime和mZxid是一对:一个表示修改时间,一个表示修改的事件编号;
  3. dataversion:表示节点数据的版本,在使用原生JavaAPI进行删除节点时,需要提供版本号,才能删除,输入-1可以跳过版本检查;

    拓展:ZAB算法和Paxos算法

猜你喜欢

转载自blog.csdn.net/that_is_cool/article/details/80901305