ZooKeeper: 一个用于分布式系统的分布式协作服务程序

ZooKeeper官方网站: http://zookeeper.apache.org/

" ZooKeeper: A Distributed Coordination Service for Distributed Applications

ZooKeeper is a distributed, open-source coordination service for distributed applications. It exposes a simple set of primitives that distributed applications can build upon to implement higher level services for synchronization, configuration maintenance, and groups and naming. It is designed to be easy to program to, and uses a data model styled after the familiar directory tree structure of file systems. It runs in Java and has bindings for both Java and C. "

ZooKeeper 是一个分布式的,开源的协作服务,可应用于分布式应用程序。它发布了一组简单的原子操作,分布式应用程序在此基础之上可以实现更高层次的服务,如同步、配置维护、群组和命名管理 等。它设计为易于编程,并且使用了一个类似于文件系统的目录结构风格的数据模型。它(ZooKeeper service)运行于Java环境中并且(ZooKeeper client)可绑定于Java和C.

ZooKeeper 是一个用于对分布式系统进行协作管理的服务程序,它本身也是分布式的,所以不要弄混了。对于我们自己的分布式系统来说,ZooKeeper就是一个用来管理的应用程序(或者说服务)。ZooKeeper提供了一个简单易用的框架,由Service和Client两大部分组成。

ZooKeeper Service

ZooKeeper的Service由若干运行的Server组成(1个或多个),这些Server完全相同(除了可以部署在不同的机器上),每个Server都维护着相同的数据结构(类似于文件目录结构),这个树形结构中的节点叫znode,Server之间会自动同步数据。

ZooKeeper的Client端可以连接到Service,每个Client对象可以连接到一个指定(或自动分配)的Server,用户通过client可以在Server中创建并维护数据。因为不同的Server维护的是同一份数据的复制,所以,不同的client使用者之间,通过ZooKeeper Service,就可以达到共享数据(信息)的目的。ZooKeeper还提供了Watch的功能,当一个client改变了znode中的数据,所有的client都可以得到通知。ZooKeeper提供了Java和C语言的客户端。

对于ZooKeeper的使用者来说,只需要运行Service,并且知道client的操作方法就可以了。在我们自己的分布式系统中,每个节点通过创建ZooKeeper client,就可以利用ZooKeeper service来同步,共享数据,或者实现更复杂的功能了。

ZooKeeper的C语言客户端使用起来不是很方便,我们可以用C++将C client library进行封装,应用到我们的C++分布式应用程序当中。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值