项目简介
ZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务。它是经典的分布式数据一致性解决方案,致力于为分布式应用提供高性能、高可用且具有严格顺序访问控制能力的分布式协调存储服务。ZooKeeper由雅虎研究院开发,是Google Chubby的开源实现,后托管到Apache,并于2010年11月正式成为Apache顶级项目。
项目的主要特性和功能
应用场景
- 维护配置信息:高效可靠完成配置项更改,保证各服务器配置项数据一致。
- 分布式锁服务:协调多服务运行进度,确保某服务操作时其他服务不能进行。
- 集群管理:监控集群服务器加入和移出,及时调整任务分配和执行。
- 生成分布式唯一ID:在分布式环境下生成全局唯一ID。
设计目标
- 高性能:全量数据存于内存,直接服务客户端非事务请求。
- 高可用:以集群方式提供服务,超半数机器正常则集群正常服务。
- 严格顺序访问:为客户端每个更新请求分配全局唯一递增编号。
数据模型
ZooKeeper数据节点呈树状结构,节点称为znode。znode兼具文件和目录特点,维护数据、元信息等,也可作为路径标识一部分。
安装使用步骤
单机安装
- 创建ZooKeeper用户并设密码。
- 安装JDK并配置环境变量。
- 上传并解压ZooKeeper安装包。
- 准备配置文件,设置dataDir路径。
- 启动ZooKeeper服务。
集群搭建
- 基于ZooKeeper - 3.4.10复制三份安装好的服务器文件。
- 修改各实例配置文件,设置不同端口号和集群配置信息。
- 在各实例dataDir目录下创建myid文件,写入对应服务器编号。
- 启动三台服务器,检验集群状态。
常用操作
- 查询节点:用
get
命令查看节点数据和属性。 - 创建节点:用
create
命令创建节点并设置数据。 - 更新节点:用
set
命令更新节点数据。 - 删除节点:用
delete
命令删除节点。 - 监听节点:用
get path [watch]
注册监听器,监听节点变化。
高级功能
- ACL权限控制:用
setAcl
命令设置节点访问控制权限。 - 事件监听机制:用
Watcher
机制实现数据发布/订阅功能。 - 分布式锁:用ZooKeeper实现分布式锁服务。
- Curator客户端:用Curator框架简化ZooKeeper客户端开发。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】