0


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

zookeeper简单介绍

ZooKeeper是一个开放源码的**分布式应用程序协调服务**,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:**配置维护、域名服务、分布式同步、组服务**等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。详细介绍可以根据菜鸟教程查看

zookeeper数据模型介绍

1、介绍

什么是数据模型,数据模型就是用来存储和处理数据的一套逻辑,就比如我们用 MySQL数据库一样,要想处理复杂业务。前提是先学会如何往里边新增数据。ZooKeeper 数据模型最根本的功能就像一个数据库。
 Zookeeper的数据模型是一种树形结构,非常像电脑中的文件系统,有一个根文件夹,下面还有很多子文件夹,ZooKeeper 的数据模型也具有一个固定的根节点(/),我们可以在根节点下创建子节点,并在子节点下继续创建下一级节点。

在这里插入图片描述

2、znode 节点类型与特性

   ZooKeeper 的数据模型是一种树形结构,就像在 MySQL 中数据是存在于数据表中,ZooKeeper 中的数据是由多个数据节点最终构成的一个层级的树状结构,和我们在创建 MySOL 数据表时会定义不同类型的数据列字段,ZooKeeper 中的数据节点也分为**持久、持久顺序、临时、临时顺序、容器、持久 TTL、持久顺序 TTL**。

注意:临时节点不能存在子节点,同级节点名称必须唯一

1)持久节点

  我们第一个介绍的是持久节点,这种节点也是在 ZooKeeper 最为常用的,几乎所有业务场景中都会包含持久节点的创建。之所以叫作持久节点是因为一旦将节点创建为持久节点,该数据节点会一直存储在 ZooKeeper 服务器上,即使创建该节点的客户端与服务端的会话关闭了,该节点依然不会被删除。如果我们想删除持久节点,就要显式调用 delete 函数进行删除操作。

2)临时节点

   接下来我们来介绍临时节点。从名称上我们可以看出该节点的一个最重要的特性就是临时性。所谓临时性是指,如果将节点创建为临时节点,那么该节点数据不会一直存储在 ZooKeeper 服务器上。当创建该临时节点的客户端会话因超时或发生异常而关闭时,该节点也相应在 ZooKeeper 服务器上被删除。同样,我们可以像删除持久节点一样主动删除临时节点。
   通常可以用在一些特定的场景,如分布式锁释放、健康检查等;在平时的开发中,我们可以利用临时节点的这一特性来做服务器集群内机器运行情况的统计,将集群设置为“/servers”节点,并为集群下的每台服务器创建一个临时节点“/servers/host”,当服务器下线时该节点自动被删除,最后统计临时节点个数就可以知道集群中的运行情况。如下图所示:

在这里插入图片描述

3)持久顺序、临时顺序

  这两种放在一起介绍,他们相对于上面两种的特性就是ZK会自动在这两种节点之后增加一个数字的后缀,而路径 + 数字后缀是能保证唯一的,这数字后缀的应用场景可以实现诸如分布式队列,分布式公平锁等。

4)容器

  容器节点是 3.5 以后版本新增的节点类型,只要在调用 create 方法时指定 CreateMode 为 CONTAINER 即可创建容器的节点类型,容器节点的表现形式和持久节点是一样的,但是区别是 ZK 服务端启动后,会有一个单独的线程去扫描,所有的容器节点,当发现容器节点的子节点数量为 0 时,会自动删除该节点,除此之外和持久节点没有区别,官方注释给出的使用场景是 Container nodes are special purpose nodes useful for recipes such as leader, lock, etc. 说可以用在 leader 或者锁的场景中。

5)持久 TTL、持久顺序 TTL

  关于持久和顺序这两个关键字,不用我再解释了,这两种类型的节点重点是后面的 TTL,TTL 是 time to live 的缩写,指带有存活时间,简单来说就是当该节点下面没有子节点的话,超过了 TTL 指定时间后就会被自动删除,特性跟上面的容器节点很像,只是容器节点没有超时时间而已,但是 TTL 启用是需要额外的配置(这个之前也有提过)配置是 zookeeper.extendedTypesEnabled 需要配置成 true,否则的话创建 TTL 时会收到 Unimplemented 的报错。

docker安装zookeeper步骤(单节点)

1、在服务器上创建目录保存保存zookeeper相关内容

 mkdir /home/zookeeper

2、拉取zookeeper镜像

docker search zookeeper    
docker pull zookeeper  //这里也可以指定版本
docker images              //查看下载的本地镜像
docker inspect zookeeper   //查看zookeeper详细信息

3、安装,并挂载数据卷到宿主机

docker run -d -e TZ="Asia/Shanghai"-p 2181:2181 
-v /home/zookeeper/data:/data-v /home/zookeeper/conf:/conf 
--name zookeeper 
--restart always 3d526e752a54

参数解释

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

查看容器

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

在这里插入图片描述
这样单节点的zookeeper就成功安装完成了

注意:需要在云服务器上打开对应的端口
在这里插入图片描述

zookeeper可视化界面

市面上有很多zookeeper的可视化界面,本文主要介绍下面两种ui界面较好的两种

1、prettyZoo

名字prettyZoo,意为美丽的动物园,是开源项目,2.1K的star。
下载地址:https://github.com/vran-dev/PrettyZoo/releases

根据自己需要下载对应版本,此处作者使用的是windows版本
在这里插入图片描述
在这里插入图片描述
一进来是英文界面,可以通过下面改变为中文
在这里插入图片描述
点击左侧创建,即可填写zk的地址,点击左下角保存
在这里插入图片描述
它支持创建多个连接,会在左侧列出来
在这里插入图片描述
双击即可连接到zk,点击节点后,数据也是一目了然,包括节点列表,元数据,和data。
在这里插入图片描述

经过测试发现,它连接后节点变化会实时更新,不用手动刷新

2、ZooKeeperAssistant

ZooKeeperAssistant意为zookeeper助手,是一款zookeeperk可视化管理与监控工具,它的界面也是相当漂亮,个人感觉UI设计比上面的prettyZoo还要好看。毕竟它是企业化的可视化工具(有些功能需要收费),如果只需要本地测试的可以用这个可视化软件,如果需要测试云服务器上的zookeeper需要收费
下载地址:http://www.redisant.cn/za

如果要买的话,还是买个永久的,redis和mq这种好像也可以用这个作为可视化界面,吐槽一下,买了并不代表,redis的可视化软件也可以用,其他的需要另外购买
在这里插入图片描述

下载后打开压缩文件,点击exe文件
在这里插入图片描述
在这里插入图片描述
它也支持创建多个连接,且会保存在左侧。
在这里插入图片描述
在这里插入图片描述
点击连接后,左侧展示节点,双击可展开查看数据,可以调节字体大小,可以搜索,查看节点元数据和权限控制,还可以操作导入导出节点数据;支持多种数据格式,包括JSON,Message Pack、XML、HEX;
在这里插入图片描述

标签: docker 容器 zookeeper

本文转载自: https://blog.csdn.net/qq_51726114/article/details/127087257
版权归原作者 shenlbang 所有, 如有侵权,请联系我们删除。

“docker安装zookeeper,以及zk可视化界面介绍”的评论:

还没有评论