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.rhkb.cn/news/469064.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SIwave:释放 SIwizard 求解器的强大功能

SIwave 是一种电源完整性和信号完整性工具。SIwizard 是 SIwave 中 SI 分析的主要工具,也是本博客的主题。 SIwizard 用于研究 RF、clock 和 control traces 的信号完整性。该工具允许用户进行瞬态分析、眼图分析和 BER 计算。用户可以将 IBIS 和 IBIS-AMI 模型添加…

Mac中禁用系统更新

Mac中禁用系统更新 文章目录 Mac中禁用系统更新1. 修改hosts,屏蔽系统更新检测联网1. 去除系统偏好设置--系统更新已有的小红点标记 1. 修改hosts,屏蔽系统更新检测联网 打开终端,执行命令: sudo vim /etc/hosts127.0.0.1 swdis…

macOS 下的 ARM 裸机嵌入式开发入门- 第二部分:实现第一个裸机应用并且调试

1、准备二进制运行程序镜像 利用 QEMU 仿真一个完整的系统,并创建最简单的“Hello world!”示例。 QEMU 模拟器支持 VersatilePB 平台,该平台包含一个 ARM926EJ-S 核心,以及其他外设,四个 UART 串行端口;特别是第一个…

分享三个python爬虫案例

一、爬取豆瓣电影排行榜Top250存储到Excel文件 近年来,Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程序,用于抓取豆瓣电影Top250的相关信息,并将其保存为Excel文件。 获取网页数据的函数,包括以…

怎么禁止Ubuntu自动更新升级

怎么禁止Ubuntu自动更新升级 笔者在做MIT 6.S081的时候发现他给我的qemu自动更新了又卡住了,故关闭了自动更新 文章目录 怎么禁止Ubuntu自动更新升级一、图形化修改二、基于命令行修改配置文件的方法 一、图形化修改 1.打开设置->软件和更新->更新 2.选择自…

论文1—《基于卷积神经网络的手术机器人控制系统设计》文献阅读分析报告

论文报告:基于卷积神经网络的手术机器人控制系统设计 摘要 本研究针对传统手术机器人控制系统精准度不足的问题,提出了一种基于卷积神经网络的手术机器人控制系统设计。研究设计了控制系统的总体结构,并选用PCI插槽上直接内插CAN适配卡作为上…

水库大坝安全监测预警方法

一、监测目标 为了确保水库大坝的结构安全性和运行稳定性,我们需要采取一系列措施来预防和减少因自然灾害或其他潜在因素所引发的灾害损失。这不仅有助于保障广大人民群众的生命财产安全,还能确保水资源的合理利用和可持续发展。通过加强大坝的监测和维护…

赖茅:“酱香酒+羽毛球”营销理念的先驱者与领航者

前言:贵州赖茅酒业有限公司成立于2014年,由贵州茅台酒股份有限公司与中石化易捷销售有限公司强强联合,引入民营资本组建。2018年签约成为世界羽联首家内地官方合作伙伴,突破白酒企业传统模式,创新打造“酱香酒&#xf…

二叉搜索树的应用(了解补充)

前言 前面我们对二叉搜索树进行了讲解,本节内容我们将对该树的应用进行讲解,对二叉搜素树进行进一步的了解。 二叉搜索树key和key/value使用场景 key搜索场景 只有key作为关键码,结构中只需要存储key即可,关键码即为需要搜索到的值…

Python 爬虫运行状态监控:进度、错误与完成情况

Python 爬虫运行状态监控:进度、错误与完成情况 在进行大规模数据爬取时,监控爬虫的运行状态至关重要。通过实时监控,可以了解爬虫的工作进度、出现的错误以及任务完成情况。这样可以及时发现并解决问题,确保数据抓取任务顺利进行…

Marin说PCB之1000-BASE-T1的PCB设计总结--01

上周末小编我从耶路撒冷出差回来,从浦东机场回来的路上和司机师傅聊了一会天,司机师傅说小伙子喜欢看脱口秀不?我说挺喜欢的,之前还看过上海这边的周立波的海派脱口秀呢,我记得还有一个综艺节目叫做一周立波秀&#xf…

[大模型]视频生成-Sora简析

参考资料: Sora技术报告https://openai.com/index/video-generation-models-as-world-simulators/4分钟详细揭密!Sora视频生成模型原理https://www.bilibili.com/video/BV1AW421K7Ut 一、概述 相较于Gen-2、Stable Diffusion、Pika等生成模型的前辈&am…

Prompt Engineering 提示工程

一、什么是提示工程(Prompt Engineering) Prompt 就是发给大模型的指令,比如讲个笑话、用 Python 编个贪吃蛇游戏等;大模型只接受一种输入,那就是 prompt。本质上,所有大模型相关的工程工作,都是…

python爬虫指南——初学者避坑篇

目录 Python爬虫初学者学习指南一、学习方向二、Python爬虫知识点总结三、具体知识点详解和实现步骤1. HTTP请求和HTML解析2. 正则表达式提取数据3. 动态内容爬取4. 数据存储5. 反爬虫应对措施 四、完整案例:爬取京东商品信息1. 导入库和设置基本信息2. 获取网页内容…

微搭低代码入门01变量

目录 1 变量的定义2 变量的赋值3 变量的类型4 算术运算符5 字符串的连接6 模板字符串7 检查变量的类型8 解构赋值8.1 数组的解构赋值8.2 对象的解构赋值 9 类型转换9.1 转换为字符串9.2 转换为数字9.3 转换为布尔值 总结 好些零基础的同学,在使用低代码的时候&#…

FPGA学习笔记#5 Vitis HLS For循环的优化(1)

本笔记使用的Vitis HLS版本为2022.2,在windows11下运行,仿真part为xcku15p_CIV-ffva1156-2LV-e,主要根据教程:跟Xilinx SAE 学HLS系列视频讲座-高亚军进行学习 从这一篇开始正式进入HLS对C代码的优化笔记 学习笔记:《…

每日OJ题_牛客_JZ38字符串的排列_DFS_C++_Java

目录 牛客_JZ38字符串的排列_DFS 题目解析 C代码 Java代码 牛客_JZ38字符串的排列_DFS 字符串的排列_牛客题霸_牛客网 描述: 输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。 例如输入…

markdown常用语法

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

CSS教程(二)- CSS选择器

1. 作用 匹配文档中的某些元素为其应用样式。根据不同需求把不同的标签选出来。 2. 分类 分类 基础选择器 包含 标签选择器、ID选择器、类选择器、通用选择器等 复合选择器 包含 后代选择器、子代选择器、伪类选择器等 1 标签选择器 介绍 又称为元素选择器,根…

第二十周学习周报

目录 摘要abstractTheory behind GANGAN训练目标GAN训练技巧 总结 摘要 本周的学习内容是GAN的基本理论,在训练GAN的时候,Generator的目标是希望生成的数据与真实的数据越相似越好,而Discriminator的目标是尽量将生成的数据与真实的数据区分…