一. 对其作用的定义:
Zookeeper是为分布式的应用提供彼此之间的同步与协调的一组服务,无论客户端连在哪个服务器上都将获得同一视图,服务器在java中跑,为客户端提供了java和c的一些api
二.Zookeeper的逻辑图
|
三.zookeeper中的角色
1. leader:在各个server中产生一个leader,用于指导各个sercer之间数据间的同步,当该leader崩溃,会从剩下的server中重新产生一个leader(选举)
(每个事务都会有其标识的id,每个服务器在配置文件里有其自己的id,寻找事务id最大的服务器为leader,因为每有一个事务生成,都将对数据进行更新,,则id最大的事务所在的服务器的数据肯定是最新的,所以选择该service作为leader,指导其他service进行数据同步。)
2. fllower: 当产生一个leader之后,,剩下的server充当fllower角色,用于接受客户端发送过来的消息,向leader发出请求,以及接受leader发出的同步指令等。
3. watcher 用于监听,一旦数据节点发生变化,会向client发送消息。
四.zookeeper数据模型
1. zookeeper数据模型是树形的文件系统结构,其中每一个节点(znode)有其唯一的路径,每个节点可以生成子节点。
2. 数据存储在节点上,每个数据可以有多个版本,znode对存储大小有限制,因此一种数据可以存储在多个znode上 。
五.zookeeper基本命令及操作
1.链接服务端 :./zkCli.sh ( ./指的是运行当前目录下的zkCli.sh文件 ,必须切换当该文件所在目录,否则报错。查找文件命令sudofind / -name zkCli.sh)
2.(增,删,改,查)
创建: create /zookeeper/a (在/zookeeper下创建节点为a) hello (节点内容)
查看节点内容:get /zookeeper/a
修改节点: set /zookeeper/a hai
删除节点:delete /zookeeper/a
创建a节点图
查看a节点图
修改a节点内容图
删除a节点图
3. zookeeper四字命令
stat 输出服务器的详细信息
ruok 测试服务是否处于正确状态,若是,则回复“imok”,否则返回空。
conf 输出相关服务配置的详细信息
cons 列出所有连接到服务器的客户端的完全详细信息
kill 关掉server