zookeeper(二):zookeeper概念 初步介绍
前文简单介绍了zookeeper的安装细节,本文对zookeeper的概念进行一个简单的了解。
一、什么是zookeeper?
zookeeper是一个高性能的分布式协调工具。
他有着以下的优点:
- 一致性和可靠性:一个客户端发起的事务,会被作用到每一个服务器,成功或者失败都是一致的;
- 单一视图:从任何服务器查看数据得到的结果是一样的;
- 顺序性:zk会对每一个Client发出的请求编号,然后按照编号执行;
- 高可用:zk会有一个leader和多个follower,一旦leader宕机,只要半数以上的服务器还存活,就可以通过paxos算法选举出新的leader;
- 数据结构简单:类似linux的树状结构,简单使用;
zookeeper的数据模型:
1、zookeeper的每一个节点都可以有多个子目录,同时可以存储数据。
2、zookeeper的节点有永久节点和临时节点,生命周期为一次会话结束。
二、zookeeper配置文件的相关解释
首先来看如下的图片:
扫描二维码关注公众号,回复:
1882371 查看本文章
- tickTime:表示一次心跳的间隔时间,单位为ms;
- initLimit:客户端连接ZK的时候,能够忍受的心跳次数限制;
- syncLimit:ZK之间进行通信,能够忍受的心跳次数限制;
- clientPort:对外提供服务的端口号;
- server.0=ip:port1:prot2:0表示myid下的内容,表示服务器的编号,port1表示服务器之间的通信端口,port2表示服务器的选举端口;
三、基础的ZK命令
上文我们完成了ZK的安装,本文我们简单了解一下,ZK的基本命令,怎么说呢?有点像redis。
get path--可以获得该节点的信息--包括其数据,子目录等内容;
set path value--可以设置该节点的value;
create path value--可以创建一个新的节点,如果重复会返回提示信息;
以上为操作截图,我们解释下红框框里头的表示:
- ctime和cZxid是一对:一个表示创建时间,一个表示创建的事件编号;
- mtime和mZxid是一对:一个表示修改时间,一个表示修改的事件编号;
- dataversion:表示节点数据的版本,在使用原生JavaAPI进行删除节点时,需要提供版本号,才能删除,输入-1可以跳过版本检查;