当前位置: 首页 > news >正文

docker安装zookeeper,以及zk可视化界面介绍

1. zookeeper

1.1. zookeeper简单介绍

ZooKeeper 是一个分布式的开源协调服务,最初由 Apache Hadoop 项目开发,用于构建分布式应用程序。它提供了一个简单的接口,允许开发人员实现诸如配置维护、域名服务、分布式同步、组服务等常见任务。ZooKeeper 的设计目标是提供高性能、高可用性和严格的顺序访问。

1.2. zookeeper数据模型介绍

ZooKeeper 的数据模型是一个层次化的命名空间,类似于文件系统。这个命名空间由称为 ZNodes 的节点组成,每个 ZNode 可以存储数据,并且可以有子节点。ZooKeeper 提供了持久节点、临时节点和顺序节点三种类型的 ZNodes。通过观察机制、事务 ID 和版本控制,ZooKeeper 确保了数据的一致性和可靠性。这个数据模型为分布式系统中的配置管理、命名服务、分布式锁等提供了强大的支持。

1.2.1 层次化命名空间

ZooKeeper 的命名空间是一个树形结构,类似于文件系统的目录结构。每个节点(ZNode)都有一个唯一的路径,路径由斜杠(/)分隔。例如:

/app
/app/service1
/app/service2
/app/service1/config
/app/service1/state

在这个例子中,/app 是一个 ZNode,它有两个子节点 service1service2service1 又有两个子节点 configstate

1.2.2 ZNodes

ZNodes 是 ZooKeeper 数据模型的基本单元。每个 ZNode 可以存储数据,并且可以有子节点。ZNodes 有两种类型:

  • 持久节点(Persistent Nodes):一旦创建,持久节点会一直存在,直到被显式删除。
  • 临时节点(Ephemeral Nodes):临时节点在创建它的客户端会话结束时自动删除。临时节点不能有子节点。

此外,ZNodes 还可以是:

  • 顺序节点(Sequential Nodes):顺序节点在创建时会被自动分配一个唯一的、单调递增的整数。这个整数附加在节点名称的末尾。顺序节点可以是持久的或临时的。
1.2.3 数据存储

每个 ZNode 可以存储数据。数据的大小通常有限制(默认情况下,ZooKeeper 允许的最大数据大小为 1MB)。数据可以是任何类型的信息,例如配置文件、状态信息、锁信息等。

1.2.4 观察机制(Watches)

客户端可以在 ZNodes 上设置观察(Watches)。当 ZNode 的数据发生变化或 ZNode 的子节点发生变化时,ZooKeeper 会通知设置了观察的客户端。观察机制是 ZooKeeper 实现事件驱动编程的关键特性之一。

1.2.5 事务 ID(zxid)

ZooKeeper 为每个事务分配一个唯一的事务 ID(zxid)。zxid 是一个 64 位的整数,分为两部分:高 32 位表示当前的 epoch(纪元),低 32 位表示事务的顺序号。zxid 用于确保所有更新操作的顺序一致性。

1.2.6 版本控制

每个 ZNode 都有三个版本号:

  • version:数据版本号,每次数据更新时递增。
  • cversion:子节点版本号,每次子节点变化时递增。
  • aversion:ACL(访问控制列表)版本号,每次 ACL 变化时递增。

版本号用于实现乐观锁机制,确保在并发更新时数据的一致性。

1.3. docker安装zookeeper步骤(单节点)

1.3.1 在服务器上创建目录保存zookeeper相关内容(本操作是在/root目录下进行)
 mkdir docker_volume/zookeeper
1.3.2 拉取zookeeper镜像
docker pull zookeeper
docker images              //查看下载的本地镜像
docker inspect zookeeper   //查看zookeeper详细信息
1.3.3、安装,并挂载数据卷到宿主机
docker run -d -e TZ="Asia/Shanghai" -p 2181:2181 -v $PWD/docker_volume/zookeeper/data:/data -v $PWD/docker_volume/zookeeper/logs:/logs --name zookeeper --restart always zookeeper

参数解释

-e TZ="Asia/Shanghai"   # 指定上海时区 
-d                      # 表示一直在后台运行容器
-p 2181:2181            # 对端口进行映射,将本地2181端口映射到容器内部的2181端口
--name                  # 设置创建的容器名称
-v                      # 将本地目录(文件)挂载到容器指定目录; 宿主机目录 / 容器内目录
--restart always        # 始终重新启动zookeeper
zookeeper               # 镜像名称 

查看容器

#查看容器是否启动
docker ps
#查看容器日志
docker logs 容器id/容器名称

在这里插入图片描述

这样单节点的zookeeper就成功安装完成了

1.4. zookeeper可视化界面

1.4.1 prettyZoo

名字prettyZoo,意为美丽的动物园,是开源项目,3.1K的star。下载地址:https://github.com/vran-dev/PrettyZoo/releases。 根据自己需要下载对应版本,这里使用的是windows版本。

在这里插入图片描述

点击左侧创建,即可填写zk的地址,点击左下角保存
在这里插入图片描述
双击即可连接到zk,点击节点后,数据也是一目了然,包括节点列表,元数据,和data
在这里插入图片描述


http://www.mrgr.cn/news/68404.html

相关文章:

  • Hive面试题-- 查询各类型专利 top10 申请人及专利申请数
  • 基于Multisim串联型连续可调直流稳压正电源电路设计与仿真
  • 【Java数据结构】枚举
  • [MySQL]视图
  • 低代码环境中的领域与根实体解析
  • 学习记录:基于Z-Stack 3.0.1的Zigbee智能插座实现
  • 数据仓库还是数据集市?这俩怎么选?
  • Elasticsearch日志收集成功但是展示不出来????
  • 2024C语言入门学习这一篇就够了-知识点总结(三万字二级必看)
  • golang 实现比特币内核:实现基于有限域上的椭圆曲线
  • C语言中操作符详解(上)
  • ExceptionHandler的实践
  • 搭子小程序定制开发:全新找搭子之旅
  • 2024年高校辅导员考试题库及答案
  • 工具导航网址
  • 理解Web登录机制:会话管理与跟踪技术解析(四)-拦截器Interceptor、异常处理
  • oracle服务器意外宕机数据库启动失败故障处理记录
  • 丹摩征文活动 | 带你玩转开源模型,一起来部署SD3+ComfyUI文生图模型
  • 开源项目工具:LeanTween - 为Unity 3D打造的高效缓动引擎详解(比较麻烦的API版)之二———补间动画控制API系列
  • 【DL】YOLO11 OBB目标检测 | 模型训练 | 推理
  • openlunar 通过uio驱动直接修改映射内存读写权限
  • 方正阀门实控人去年分红近亿元:仍募资补流2500万,市场服务费疑点重重
  • 【人工智能】ChatGPT多模型感知态识别
  • 丹摩征文活动|详解 DAMODEL(丹摩智算)平台:为 AI 开发者量身打造的智算云服务
  • PyQt5实战——翻译的实现,成功爬取微软翻译(可长期使用)经验总结(九)
  • 初识网络编程TCP/IP