ZooKeeper源码解析(一)-入门操作

原创
2017/06/18 10:44
阅读数 38

Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

Zookeeper分成客户端和服务端两部分,服务端通常运行于集群模式,统一为客户端提供分布式数据一致性管理服务,集群可提供水平扩展能力,以及避免单点故障。

ZooKeeper让分布式进程可通过共享的、与标准文件系统类似的分层名字空间相互协调。名字空间由数据寄存器(在ZooKeeper世界中称作znode)构成,这与文件和目录类似。与用于存储设备的典型文件系统不同的是,ZooKeeper的数据往往常驻内存提供服务,提高性能。

Zookeeper还提供了数据动态监测机制, 客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,客户端会触发注册事件。 

ZooKeeper的实现很重视高性能、高可用性,以及严格的顺序访问。高性能意味着可将ZooKeeper用于大的分布式系统。可靠性使之可避免单点失败。严格的顺序访问使得客户端可以实现复杂的同步原语。

服务端通常有多台服务器,这些服务器都通过QuorumPeer进程维持分布式系统间的数据交换,选举领导者(Leader)和追随者(Follower),动态监控集群,一旦发生节点故障则重新启动选举流程,选出新的Leader。每个服务器维护相同的一份全局数据,通过QuorumPeer维持数据之间的同步,这样提供高可靠性和横向扩展性。

客户端命令行

本节从Zookeeper客户端的角色出发,理解Zookeeper的常用操作方法。

客户端提供的操作包括启动、关闭、创建节点、设置节点数据、删除节点、获取节点、获取节点数据等。这里只是取其中的几个命令做为示例。

  • 启动客户端

zkCli.sh

  • 连接服务端

Connect 10.10.27.21

  • 创建路径节点

创建一个新的 znode ,使用 create /test “hello” 。这个命令在根目录下创建了一个新的 znode 节点“ test ”以及与它关联的字符串:

  • 获取目录

使用 ls 命令来查看当前 ZooKeeper 中所包含的内容,这里显示/目录下有test、zookeeper两个子节点。

 

  • 获取节点数据

运行 get 命令来确认第二步中所创建的 znode ,显示znode的数据、创建时间等状态信息。

示例数据:

  • 设置节点数据

通过 set 命令来对 zk 所关联的字符串进行设置,设置/test路径的数据为“welcome!”。

  • 删除节点

delete  /test

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部