074. Zookeeper 入门

2021-03-03 10:37:30 浏览数 (1)

1. 什么是 ZooKeeper


  • 简介:Apache ZooKeeper 是一种用于分布式应用程序的高性能协调服务,提供一种集中式信息存储服务。
  • 特点:数据存储在内存中,类文件系统的树形结构(文件和目录),高吞吐量和低延迟,集群高可靠。
  • 作用:基于 ZooKeeper可以实现分布式统一配置中心、服务注册中心,分布式锁等功能。
何为分布式协调服务
  • 单机系统因处理能力上限、可用性、可靠性的考虑,变成分布式系统。
  • 原来在单机进程中完成一件事的多个步骤,变为在多个计算机中执行,这时就需要协调多个计算机节点做事的顺序,原来在单系统中资源竞争通过锁进行同步控制,现在变为多个计算机上的进程间资源竞争,也需要分布式协调。
  • 我们可以把每个分布式系统中需要的协调管理的公共基础部分抽取出来作为一个基础公共服务供大家使用,这就是分布式协调服务。
应用案例
  • Hbase:使用 ZooKeeper 进行 master 选举、服务间协调。
  • Solr:使用 ZooKeeper 进行集群管理、Leader 选举、配置管理。
  • dubbo:服务注册。
  • Mycat:集群管理、配置管理。
  • Sharding-JDBC:集群管理、配置管理。
同类产品
  • consul、etcd、Doozer

2. 单机版安装


  • 下载:https://zookeeper.apache.org/releases.html。
  • 解压后的 conf 目录,增加配置文件 zoo.cfg
    • 配置参数:https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_configuration
  • 启动服务端:bin/zkServer.sh start
  • 测试,客户端连接:bin/zkCli.sh -server 127.0.0.1:2181

3. CLI-操作指令


指令

描述

ls

获取子节点。

create

在 ZooKeeper 中的某个位置创建一个节点。

delete

删除节点。

exists

测试节点是否存在。

get data

从指定节点读取数据。

set data

将数据存入指定节点。

get children

c查询指定节点之下所有的子节点。

sync

等待数据进行同步。

4. Java API


  • org.apache.zookeeper
  • org.apache.zookeeper.data
  • 创建客户端的核心类:Zookeeper

方法

描述

connect

连接到 ZooKeeper 集合

create

创建 znode

exists

检查 znode 是否存在及其信息

get data

从特定的 znode 获取数据

set data

在特定的 znode 中设置数据

get children

获取特定的 znode 中的所有子节点

delete

删除指定的 znode 及其所有子项

close

关闭连接

5. 第三方客户端


0 人点赞