资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

Zookeeper特性与节点数据类型详解

Java 更新时间: 发布时间: 计算机考试归档 最新发布

Zookeeper特性与节点数据类型详解

1.CAP理论

CAP理论是分布式系统实现的理论基础,主要包括一致性,可用性和分区容易性。

        一致性(consistency):保证多个系统之间的数据一致。

        可用性(availbilaty):每次请求都能获得响应,但不保证数据是最新数据。

        分区容错性(partition tolerance):分布式系统在遇到网络故障时,能够对外提供一致性和可用性服务,除非整个网络瘫痪。

        一个系统中最多保证其中的两项,分区容错性是必须的,所以一般只有CP和AP,zookeeper是CP,springCloud中eureka是保证AP。

2.BASE理论

BASE理论是对一致性和可用性的妥协,即包括基本可用,软状态和最终一致性。

        基本可用:在分布式系统出现故障时,允许损失一定可用性和一致性。

        软状态:允许在达到最终一致性时有中间状态,即在延迟后达到最终一致性。

        最终一致性:经过一段时间后达到最终一致性。

强一致性:在分布式系统中多个数据备份一旦有更新就要通知其他数据备份更新,保证任意时刻读到的数据是相同的,强一致性一定会损害可用性。

弱一致性:不保证响应的数据是最新的。

最终一致性:在经过一段时间的延迟后最终数据达到一致性的要求。

顺序一致性:任意一次读都能看到最近一次写的数据。写入时是建立在已经同步且确定的基础上。

zookeeper写入时强一致性,读取时顺序一致性。

3.zookeeper介绍 

zookeeper是一个开源的分布式协调框架,旨在解决分布式系统中一致性的问题。

zookeeper本质上是一个小型存储系统,主要包括文件服务+监听服务。从设计角度看是从观察者模式设计的分布式服务管理框架。

zookeeper包括节点:持久化目录节点,持久化顺序编号目录节点,临时目录节点,临时目录顺序编号目录节点。container节点,TTL节点zookeeper官网传送门!!!https://zookeeper.apache.org/

3.1 zookeeper安装

下载文件:Apache ZooKeeper

上传文件到目录:/usr/local/zookeeper(没有zookeeper目录就创建一个,mkdir zookeeper)
赋权限:chmod -R 777 apache-zookeeper-3.8.0-bin.tar.gz
解压文件:tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz
切换目录:cd apache-zookeeper-3.8.0-bin
创建data目录:mkdir data

复制样例文件zoo.cfg并指定zoo.cfg为启动配置文件:

        cd apache-zookeeper-3.8.0-bin/conf
        cp zoo_sample.cfg  zoo.cfg
        vi zoo.cfg dataDir=/tmp/zookeeper 修改为指定的data目录
                /usr/local/zookeeper/apache-zookeeper-3.8.0-bin/data
        cd ../
        bin/zkServer.sh start conf/zoo.cfg
查看server状态:bin/zkServer.sh status
启动客户端bin/zkCli.sh

下面步骤非必须步骤:
        # 连接远程的zookeeper server
        # bin/zkCli.sh -server ip:port

关闭server服务: bin/zkServer.sh stop conf/zoo.cfg

 3.1.1 常见cli命令

ZooKeeper: Because Coordinating Distributed Systems is a Zoo

命令基本语法

功能描述

help

显示所有操作命令

ls [-s] [-w] [-R] path

使用 ls 命令来查看当前 znode 的子节点 [可监听]

-w: 监听子节点变化

-s: 节点状态信息(时间戳、版本号、数据大小等)

-R: 表示递归的获取

create [-s] [-e] [-c] [-t ttl] path [data] [acl]

创建节点

-s : 创建有序节点。

-e : 创建临时节点。

-c : 创建一个容器节点。

t ttl] : 创建一个TTL节点, -t 时间(单位毫秒)。

data:节点的数据,可选,如果不使用时,节点数据就为null。

acl:访问控制

get [-s] [-w] path

获取节点数据信息

-s: 节点状态信息(时间戳、版本号、数据大小等)

-w: 监听节点变化

set [-s] [-v version] path data

设置节点数据

-s:表示节点为顺序节点

-v: 指定版本号

getAcl [-s] path

获取节点的访问控制信息

-s: 节点状态信息(时间戳、版本号、数据大小等)

setAcl [-s] [-v version] [-R] path acl

设置节点的访问控制列表

-s:节点状态信息(时间戳、版本号、数据大小等)

-v:指定版本号

-R:递归的设置

stat [-w] path

查看节点状态信息

delete [-v version] path

删除某一节点,只能删除无子节点的节点。

-v: 表示节点版本号

deleteall path

递归的删除某一节点及其子节点

setquota -n|-b val path

对节点增加限制

n:表示子节点的最大个数

b:数据值的最大长度,-1表示无限制

3.1.2 演示节点创建 

ls -R /
创建持久化节点
create /test
ls -R /
创建持久化节点赋予数据
create /test2 cainiao
ls -R /
查看数据
get /test
get /test2
修改数据
set /test testData
get /test
删除节点
delete /test
ls -R /
创建子节点
create /test2/sub0
ls -R /test2

创建顺序节点
create /seq
create -s /seq/seq-
create -s /seq/seq-
create -s /seq/seq-
ls -R /seq
创建顺序节点赋予数据
create -s /seq/seq- datatest
get /seq/seq-0000000005

创建临时节点
create -e /ephemeral ephemeralData
查看临时节点与持久化节点ephemeralOwner不同
get -s /ephemeral
get -s /test2

CTRL+C

cd ../usr/local/zookeeper/apache-zookeeper-3.8.0-bin/logs
tail -f zookeeper-root-server-localhost.localdomain2.out 

bin/zkCli.sh
create -e /ephemeral ephemeralData
ls /
CTRL+C
bin/zkCli.sh
ls /
(30秒以后就看不到这个ephemeral临时节点了)
ls /

 

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/981016.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【Zookeeper特性与节点数据类型详解】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2