ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Zookeeper入门篇

2021-12-21 20:59:45  阅读:192  来源: 互联网

标签:zookeeper ip Zookeeper 入门篇 path 权限 节点 digest


第一部分 初识zookeeper?

1,什么是zookeeper?

1,高可用、高性能、开源的分布式协调服务。为分布式应用提供一致性服务,可以实现发布/订阅,负载均衡,分布式协调/通知,集群管理等
2,目标是封装好复杂易出错的关键服务,提供给用户
3,ZooKeeper保证了分布式一致性(顺序一致性、原子性、单一视图、可靠性、实时性/最终一致性)
4,客户端的读请求
5,有序性,所有更新都是全局有序的

2,zookeeper的linux环境搭建

官网下载地址Apache ZooKeeper

步骤:

  1. 因为zookeeper是java写的,所以要安装jdk,并配置好环境

  2. 将在官网下载好的压缩包上传到linux系统上(最好建一个专门存软件包的文件夹)解压,解压命令tar -zxvf 压缩文件名

  3. 进入解压后的目录,看到zoo_sample.cfg配置文件,这是模板文件,我们复制一份,并创建data文件夹(用于存储数据)

    cp zoo_sample.cfg zoo.cfg
    
  4. pwd命令复制data文件夹路径,cd到conf文件夹,vi修改我们复制的那个文件

    dataDir=复制的路径
    
  5. 尝试启动、连接、关闭zookeeper服务:cd到bin目录

    ./zkServer.sh start			//开启服务
    ./zkServer.sh stop			//关闭服务
    ./zkCli.sh					//连接服务
    ./zkCli.sh -server ip地址:端口号			//用ip地址连接
    ./zkServer.sh status		//查看服务状态
    

    启动服务成功截图
    在这里插入图片描述
    关闭服务成功截图
    在这里插入图片描述
    状态查看截图
    在这里插入图片描述

3,zookeeper的数据模型

ozookeeper的数据节点可以视为树状结构(或者目录),树中的各节点被称为znode(即zookeeper node),一个znode可以有多个子节点。zookeeper节点在结构上表现为树状;使用路径path来定位某个znode,比如/ns-1/guigu/mysql/schema1/table1,此处ns-1、guigu、mysql、schema1、table1分别是根节点、2级节点、3级节点以及4级节点;其中ns-1是guigu的父节点,guigu是ns-1的子节点,guigu是mysql的父节点,mysql是guigu的子节点,以此类推。

oznode,兼具文件和目录两种特点。既像文件一样维护着数据、元信息、ACL、时间戳等数据结构,又像目录一样可以作为路径标识的一部分。

一个znode可以分为三个部分:节点的数据 节点的子节点,节点的状态

第二部分 基本命令的使用

连接zookeeper客户端后,可以使用如下命令:

help 查看帮助信息(最重要,这是帮助文档,记住这个命令即可)

whoami 查看当前用户

stat 查看节点的属性

下面是所有命令

​ addauth scheme auth
​ close
​ config [-c] [-w] [-s]
​ connect host:port
​ create [-s] [-e] [-c] [-t ttl] path [data] [acl]
​ delete [-v version] path
​ deleteall path [-b batch size]
​ delquota [-n|-b|-N|-B] path
​ get [-s] [-w] path
​ getAcl [-s] path
​ getAllChildrenNumber path
​ getEphemerals path
​ history
​ listquota path
​ ls [-s] [-w] [-R] path
​ printwatches on|off
​ quit
​ reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,…]]] | [-add serverId=host:port1:port2;port3[,…]] [-remove serverId[,…]*]
​ redo cmdno
​ removewatches path [-c|-d|-a] [-l]
​ set [-s] [-v version] path data
​ setAcl [-s] [-v version] [-R] path acl
​ setquota -n|-b|-N|-B val path
​ stat [-w] path
​ sync path
​ version

使用监听器注意: 监听器是一次性的

参数说明

[]中的都是可选参数(即可加可不加)

-w watch,监听

-s sequence,顺序

-e ephemeral,临时

-v version,数据版本号

-R recursively,递归操作

节点属性说明

在这里插入图片描述

acl权限控制

1,权限模式

world 只有一个用户:anyone,代表登录的所有人(默认)

ip 对客户端通过ip:端口连接的做认证

auth 对添加认证(addauth digest 用户名:密码)的用户认证

digest 使用“用户名:加密密码”方式认证

2,授予的权限

create、delete、read、writer、admin也就是 增、删、改、查、管理权限,这5种权限简写为cdrwa,注意:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限

3,举例

world模式 setAcl /路径 world:anyone:cdrwa

ip模式 先用ip连接服务,setAcl /路径 ip:127.0.0.1:cdrwa

auth模式

  • addauth digest 用户名:明文密码
  • setAcl /路径 auth:用户名:cdrwa

digest模式

  • 用linux命令,echo -n 用户名:密码 | openssl dgst -binary -sha1 | openssl base64,复制加密后的密码
  • addauth digest 用户名:明文密码
  • setAcl /路径 digest:用户名:加密后的密码:cdrwa

4,多种模式授权

setAcl /node world:anyone:cdra,ip:192.168.211.129:crwa,auth:javagirl:drwa,digest:javagirl:tMWv2OiUQwAESYVpyRLr4NcbM1s=:ac

5,超级管理员

zookeeper的权限管理模式有一种叫做super,该模式提供一个超管可以方便的访问任何权限的节点,其它用户的所有权限super都会有

设置

重启服务,并 vi 修改conf文件夹中的zkServer.sh

  nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" "-Dzookeeper.DigestAuthenticationProvider.superDigest=super:xQJmxLMiHGwaqBvst5y6rkB6HQs=" \
    -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &

之后启动连接服务,并输入addauth digest super:admin添加用户认证

标签:zookeeper,ip,Zookeeper,入门篇,path,权限,节点,digest
来源: https://blog.csdn.net/m0_49853352/article/details/122072773

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有