前言
由于在实际工作中,几乎都是使用公司提供的基础服务或者采用开源的框架,很少与ZK实际打交道,对ZK的底层原理一知半解,无法将各个知识点串起来,所以打算记录下自己所了解的ZK,并且将学习回顾知识汇总。
本文作为Zk系列知识的开篇,只介绍Zk的基本知识,附带提一嘴Zk的实际应用场景,不深入介绍原理。
Zookeeper介绍
一、什么是Zookeeper
Zookeeper是典型的为解决分布式一致性所带来的问题的方案组件,分布式应用可以基于zk来实现集群管理、服务注册、动态配置、负载均衡、分布式锁、发布订阅等一系列功能,并且zk可以保证分布式一致性特性。
Zk的目标是致力于提供一个高性能、高可用、严格顺序一致性的分布式协调服务。
二、Zookeeper基础概念
1. Zk数据节点(文件系统)
zk的数据模型采用一系列节点来构成,节点按照树状进行分布,类似于文件系统,所以一般说zk是一个分布式文件系统。
在zk中创建的所有数据与文件系统中的目录结构一样,采用 /aa/bb格式,不过传统的文件系统通过磁盘来存储数据,zk则采用内存存储数据,所以可以提供高吞吐、降低延迟的功能。
zk中的每个数据节点,称作为一个ZNode节点,并且ZNode按照持久化分为四种类型。
(1)持久化目录节点:该节点一但创建将进行持久化,客户端断开不会丢失节点。
(2)持久化顺序目录节点:与持久化节点一致,但是zk会为节点名称自动添加顺序编号如:/znode00000001
(3)临时目录节点:该节点由客户端创建后,一但客户端断开连接便自动清除该节点。
(4)临时顺序目录节点:与临时节点一致,zk也会为节点名称自动添加顺序