Zookeeper入门篇

2023-05-16

Zookeeper特性:

  • Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
  • 集群中只要有半数以上(不包括半数)节点存活,Zookeeper集群就能正常服务。
  • 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。
  • 更新请求顺序进行,来自同一个Client的更新请求按其发送顺序依次执行。
  • 数据更新原子性,一次数据更新要么成功,要么失败(有事务特性)。
  • 实时性,在一定时间范围内,Client能读到最新数据。

Zookeeper的选举机制:
在这里插入图片描述
按照节点的生成顺序,如myid=1、myid=2…这都是有顺序的;当开始选举时,myid=1的节点肯定会投自己一票,然后发现票数没达到节点数的一半以上,继而轮到,myid=2的节点投自己一票,这时myid<2的节点也会投自己一票,这时发现票数还是没达到节点数的一半以上,又转向myid=3的节点投自己一票,根据之前的规律,myid<3的节点也会投自己一票,此时myid=3的节点已经有三票了,超过了节点数的一半,因此就被选举为leader,注意,此时虽然根据之前的规律,myid=4或者5的节点可能会获得更多的票数,但是myid=3的节点已经是leader了,所以它们就只能是follow。

问题:为什么推荐Zookeeper节点个数是奇数呢?
举个栗子:
有两个Zookeeper集群,一个有五个节点,另一个有六个节点。
倘若两个集群都是三个节点宕机,根据Zookeeper特性中集群中只要有半数以上(不包括半数)节点存活,Zookeeper集群就能正常服务,即半数机制。因此来说,两个集群都不能工作,但是拥有六个节点的集群多了维护一个节点的代价,所以说推荐Zookeeper节点个数是奇数。

节点类型

  • 持久(Persistent):客户端和服务器端断开连接后, 创建的节点不删除

  • 短暂(Ephemeral):客户端和服务器端断开连接后, 创建的节点自己删除
    在这里插入图片描述
    1.持久化节点分析:

  • 持久化目录节点 客户端与Zookeeper断开连接后,该节点依旧存在

  • 持久化顺序编号目录节点 客户端与Zookeeper断开连接后, 该节点依旧存在, 只是Zookeeper给该节点名称进行顺序编号
    2.临时节点分析:

  • 临时目录节点 客户端与Zookeeper断开连接后, 该节点被删除

  • 临时顺序编号目录节点 客户端与Zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。

  • 说明:创建znode时设置顺序标识,znode名称后会附加一个值,顺序号是一个单调递增的计数器,由父节点维护。

  • 注意:在分布式系统中,顺序号可以被用于为所有的事件进行全局排序, 这样客户端可以通过顺序号推断事件的顺序。

  • 并不是说临时节点不好,只能说持久化节点和临时节点应用场景不同,因为持久化节点和临时节点的区别是Zookeeper断开连接后,该节点是否依旧存在,我们可以反过来运用规则:如果我们想知道某个客户端是否下线,就可以根据与客户端相连的节点是否存在来判断,因为在临时节点的规则中,客户端下线,连接必然断开,节点也将不复存在。

Zookeeper单机安装:
1.在centos中使用root用户创建zookeeper用户

useradd zookeeper
passwd zookeeper

2.zookeeper底层依赖于jdk,zookeeper用户登录后,根目录(/home/zookeeper)下先进行jdk的安装,jdk
使用jdk-8u131-linux-x64.tar.gz版本,上传并解压jdk

//解压jdk
tar -xzvf jdk-8u131-linux-x64.tar.gz

3.配置jdk环境变量

// vim打开 .bash_profile文件
vi .bash_profile
// 文件中加入如下内容
JAVA_HOME=/home/zookeeper/jdk1.8.0_131
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
// 使环境变量生效
. .bash_profile

4.检测jdk安装

// 敲如下命令,系统如图反馈说明安装成功
java -version

在这里插入图片描述
5.zookeeper使用zookeeper-3.4.10.tar.gz,上传并解压

// 解压zookeeper
tar -xzvf zookeeper-3.4.10.tar.g

6.为zookeeper准备配置文件

// 进入conf目录
cd /home/zookeeper/zookeeper-3.4.10/conf
// 复制配置文件
cp zoo_sample.cfg zoo.cfg
// zookeeper根目录下新建data目录
mkdir data
// vi 修改配置文件中的dataDir
// 此路径用于存储zookeeper中数据的内存快照、及事物日志文件
dataDir=/home/zookeeper/zookeeper-3.4.10/data

7.启动zookeeper

// 进入zookeeper的bin目录
cd /home/zookeeper/zookeeper-3.4.10/bin
// 启动zookeeper
./zkServer.sh start
//启动:zkServer.sh start
//停止:zkServer.sh stop
//查看状态:zkServer.sh status

8.通过zookeeper客户端操作zookeeper服务器(不然是无法使用相关命令的,如create)

[zookeeper@localhost bin]$ ./zkCli.sh

9.zookeeper安装的一些坑
1…/zkServer.sh start和./zkServer.sh status能用,zkServer.sh start和zkServer.sh status用不了

bash: zkServer.sh: command not found...

6种解决方法:
前面五种方法都要基于最后一种方法才可以成功

  • /home/zookeeper/.bash_profile中jdk的配置是否正确,执行source /home/zookeeper/.bash_profile生效环境变量(集群启动zk.Server.sh时,先把所有节点环境变量生效后才能启动)
  • 修改 zookeeper.out 权限,chmod a+xwr zookeeper.out完成之后,先关闭zkServer.sh stop,再启动 zkServer.sh start(zookeeper.out 文件在/home/zookeeper/zookeeper-3.4.10/bin下)
  • 去到zookeeper下面的data文件夹里面可能会有两个文件( 它也是一个文件夹),也可能只有一个( zookeeper_server.pid),删掉zookeeper_server.pid
  • 配置环境变量:vim /etc/profile ,添加:
export ZOO_HOME=/usr/local/zookeeper-3.4.6
 export PATH=$ZOO_HOME/bin:$PATH

然后 source /etc/profile

  • 在zookeeper用户下操作,很多人都在root操作,这是不行的,你的zookeeper安装在zookeeper用户下

zookeeper常用Shell命令
1.新增节点

create [-s] [-e] path data #其中-s 为有序节点,-e 临时节点

创建持久化节点并写入数据:

create /hadoop "123456"

创建持久化有序节点,此时创建的节点名为指定节点名 + 自增序号

[zk: localhost:2181(CONNECTED) 26] delete  /a0000000001
[zk: localhost:2181(CONNECTED) 27] delete  /b0000000002
[zk: localhost:2181(CONNECTED) 28] delete  /c0000000003
#验证了自增序号
[zk: localhost:2181(CONNECTED) 29] create -s /a "aaa"
Created /a0000000005
[zk: localhost:2181(CONNECTED) 30] create -s /b "bbb"
Created /b0000000006
[zk: localhost:2181(CONNECTED) 33] create -s /c "ccc"
Created /c0000000007

创建临时节点,临时节点会在会话过期后被删除:

[zk: localhost:2181(CONNECTED) 6] create -e /tmp "tmp"
Created /tmp

[zk: localhost:2181(CONNECTED) 0] ls /
[c0000000007, hadoop, zookeeper, b0000000006, a0000000005]

创建临时有序节点,临时节点会在会话过期后被删除:

[zk: localhost:2181(CONNECTED) 1] create -s -e /aa 'aaa'
Created /aa0000000008
[zk: localhost:2181(CONNECTED) 2] create -s -e /bb 'bbb'
Created /bb0000000009
[zk: localhost:2181(CONNECTED) 3] create -s -e /cc 'ccc'
Created /cc0000000010

[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, b0000000006, c0000000007, hadoop, a0000000005]

2.更新节点
更新节点的命令是 set ,可以直接进行修改,如下:

[zk: localhost:2181(CONNECTED) 9] set  /hadoop "564"
cZxid = 0x2
ctime = Wed Mar 31 03:43:53 EDT 2021
mZxid = 0x20
mtime = Wed Mar 31 22:38:50 EDT 2021
pZxid = 0xf
cversion = 2
dataVersion = 6
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

也可以基于版本号进行更改,此时类似于乐观锁机制,当你传入的数据版本号
(dataVersion) 和当前节点的数据版本号不符合时,zookeeper 会拒绝本次修改:

[zk: localhost:2181(CONNECTED) 11] set  /hadoop "563" 5
version No is not valid : /hadoop

3.删除节点
删除节点的语法如下:

[zk: localhost:2181(CONNECTED) 12] delete /hadoop
[zk: localhost:2181(CONNECTED) 13] ls /
[zookeeper, b0000000006, c0000000007, a0000000005]

[zk: localhost:2181(CONNECTED) 14] delete /a0000000005 5
version No is not valid : /a0000000005

要想删除某个节点及其所有后代节点,可以使用递归删除,命令为rmr path
4.查看节点
get path

[zk: localhost:2181(CONNECTED) 15] get /a0000000005
aaa
cZxid = 0x16
ctime = Wed Mar 31 22:01:05 EDT 2021
mZxid = 0x16
mtime = Wed Mar 31 22:01:05 EDT 2021
pZxid = 0x16
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

节点各个属性如下表。其中一个重要的概念是 Zxid(ZooKeeper Transaction
Id),ZooKeeper 节点的每一次更改都具有唯一的 Zxid,如果 Zxid1 小于 Zxid2,则
Zxid1 的更改发生在 Zxid2 更改之前。
状态属性 说明
cZxid 数据节点创建时的事务 ID
ctime 数据节点创建时的时间
mZxid 数据节点最后一次更新时的事务 ID
mtime 数据节点最后一次更新时的时间
pZxid 数据节点的子节点最后一次被修改时的事务 ID
cversion 子节点的更改次数
dataVersion 节点数据的更改次数
aclVersion 节点的 ACL 的更改次数
ephemeralOwner
如果节点是临时节点,则表示创建该节点的会话的
SessionID;如果节点是持久节点,则该属性值为 0
dataLength 数据内容的长度
numChildren 数据节点当前的子节点个数

5.查看节点状态
可以使用 stat 命令查看节点状态,它的返回值和 get 命令类似,但不会返回
节点数据

[zk: localhost:2181(CONNECTED) 16] stat /a0000000005
cZxid = 0x16
ctime = Wed Mar 31 22:01:05 EDT 2021
mZxid = 0x16
mtime = Wed Mar 31 22:01:05 EDT 2021
pZxid = 0x16
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

6.查看节点列表
查看节点列表有 ls pathls2 path 两个命令,后者是前者的增强,不仅可
以查看指定路径下的所有节点,还可以查看当前节点的信息

[zk: localhost:2181(CONNECTED) 2] ls /
[zookeeper, b0000000006, c0000000007, a0000000005]
[zk: localhost:2181(CONNECTED) 3] ls2 /
[zookeeper, b0000000006, c0000000007, a0000000005]
cZxid = 0x0
ctime = Wed Dec 31 19:00:00 EST 1969
mZxid = 0x0
mtime = Wed Dec 31 19:00:00 EST 1969
pZxid = 0x23
cversion = 18
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 4

7.监听器get path [watch](哪个会话设置的监听哪个会话才能收到信息)
使用 get path [watch] 注册的监听器能够在节点内容发生改变的时候,向客
户端发出通知。需要注意的是 zookeeper 的触发器是一次性的 (One-time trigger),即
触发一次后就会立即失效。

[zk: localhost:2181(CONNECTED) 20] get /hadoop "123" watch
123
cZxid = 0x25
ctime = Wed Mar 31 22:49:29 EDT 2021
mZxid = 0x25
mtime = Wed Mar 31 22:49:29 EDT 2021
pZxid = 0x25
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 21]
WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/hadoop#节点
值改变

[zk: localhost:2181(CONNECTED) 4] set /hadoop "456"
cZxid = 0x25
ctime = Wed Mar 31 22:49:29 EDT 2021
mZxid = 0x26
mtime = Wed Mar 31 22:50:27 EDT 2021
pZxid = 0x25
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

acl超级管理员模式:
zookeeper的权限管理模式有一种叫做super,该模式提供一个超管可以方便的访问任何权限的节点

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zookeeper入门篇 的相关文章

  • 位运算-2进制表示浮点数

    2进制表示浮点数 题目实现思路代码实现 题目 输入一个浮点数 xff0c 输出浮点数的二进制码 实现思路 1 二进制表示浮点数 xff1a 以0为原点向左移是2的整数次幂 xff0c 向右移是逐级除2 类似 8 4 2 1 0 0 5 0
  • Realsense相机疑难问题

    目录 不同传感器模块之间的外参问题问题描述解决办法打开windows命令行 xff0c 将目录导航到C Program Files x86 Intel RealSense SDK 2 0 tools目录下确保此时电脑连入了Realsense
  • 2023.3.17 | Goby红队版可利用漏洞更新

    Goby预置了最具攻击效果的漏洞引擎 xff0c 覆盖Weblogic xff0c Tomcat等最严重漏洞 每天从互联网 xff08 如CVE xff09 会产生大量的漏洞信息 xff0c 我们筛选了会被用于真实攻击的漏洞进行每日更新 G
  • 算法落地思考:如何让智能运维更智能

    嘉宾 王鹏 整理人 西狩xs 出品 CSDN云原生 AIOps是人工智能与运维的结合 xff0c 能够基于已有的运维数据 xff0c 利用人工智能算法 xff0c 通过机器学习的方式帮助企业提升运维效率 xff0c 解决自动化运维无法管理的
  • Python 实现用网页展示多个结果表数据

    Python 实现用网页展示多个表格的数据 前言 一 效果图 二 代码 1 引入库 2 函数定义 3 主程序 前言 实现方法是利用pandas to html 与表格展示的美化相结合 使数据展示更美观 一 效果图 示例 二 代码 本文将使用
  • ubuntu桌面翻转怎么设置成正常?

    有一次在ubuntu设置中 xff0c 脑残在桌面设置里把桌面翻转了 xff0c 虽然有撤回按钮 xff0c 但是桌面翻转了 xff0c 鼠标不受控制 这里介绍一种办法 xff1a Ctrl 43 Alt 43 T 打开终端 xrandr
  • ubuntu20运行VINS-Fusion报错

    ubuntu20运行VINS Fusion报错 Ubuntu20运行VINS Fusion xff0c catkin make报错可以csdn解决 xff1b 但是启动vins node节点的时候 xff0c 就会显示 段错误 xff0c
  • 谷粒学院自学笔记

    谷粒学院自学笔记 day01上午一 MyBatis Plus的入门配置 下午 day02day03day04 Day05Day06Day07Day08Day09Day10Day11Day12Day13Day14Day15Day16Day17
  • CPU 任务调度算法

    摘录自 TSN网络中时间同步精度提升与可靠性研究 董林峰 可参考文章 xff1a https blog csdn net qq 38216239 article details 80374539 多任务操作系统按调度策略的差别可以细分为抢占
  • 安装Docker详细步骤总结

    一 安装Docker 1 下载关于Docker的依赖环境 在Xterm中输入以下代码安装依赖环境 回车 yum y install yum utils device mapper persistent datalvm2 使用yum工具下载
  • MobaXterm连接报错Network error: Connection timed out

    今天打开MobaXterm远程连接我VMware虚拟机的时候出现以下界面 xff0c 问题详情如下 xff1a Network error Connection timed out Session stopped Press lt retu
  • 拉丁超立方抽样

    拉丁超立方 xff08 LHS xff09 适用于样本数量少的情况 xff0c 主要思想是概率分布的分层 xff0c 一层一个样本 xff08 每层的样本是随机的 当且仅当每一行和每一列只有一个样本时 xff0c 才能称为拉丁方格 LHS可
  • 银河麒麟用x11vnc实现远程桌面

    1 安装x11vnc 插入x11vnc的命令 sudo apt span class token operator span get update sudo apt span class token operator span get in
  • Vins-mono细节描述--相机imu外参标定

    vins mono能够在初始化的时候 自动标定相机和imu的外参 这个强大的功能其实并没有想象中那么复杂 一起来看看 1 在vins mono的配置文件中 就可以找到参数 来选择 是否需要估计参数 Extrinsic parameter b
  • lvi-sam的深度匹配策略

    在lvi sam中 xff0c 作者通过视觉处理的时候 xff0c 利用lidar的深度信息 xff0c 得到了更稳定的估计 那在代码里是怎么实现的呢 xff1f 一起来看看看呗 1 在lvi sam的feature tracker nod
  • 路由器硬件组成

    和其他计算机一样 xff0c 运行着baiIOS的路由器也包含了一个 中央处理器 CPU 不同系列和型号的路由器 xff0c CPU也不尽相同 路由器的处理器负责执行处理数据包所需的工作 xff0c 比如维护路由和桥接所需的各种表格以及作出
  • 系统调用与库函数的关系

    系统调用与库函数 1 系统调用 操作系统负责管理和分配所有的计算机资源 为了更好地服务于应用程序 xff0c 操作系统提供了一组特殊接口 系统调用 通过这组接口用户程序可以使用操作系统内核提供的各种功能 例如分配内存 创建进程 实现进程之间
  • FPGA中关于“后仿真正常,但上板测试出错”的问题

    FPGA中关于 后仿真正常 xff0c 但上板测试出错 的问题 求助帖 做的是矩阵键盘的扫描程序 xff0c 后仿真的扫描波形正常 xff1a 但上板子测试的时候用chipscope看扫描的波形却是这个样子的 xff1a 有带佬分析一下是什
  • 一张图搞懂数据结构体系——数据结构脑图

    基本概念 xff1a 数据 xff1a 数据是信息的载体 xff0c 是计算机程序加工的原料 数据元素 xff1a 是数据的基本单位 xff0c 也称元素 结点 数据结构 xff1a 是数据之间的相互关系 xff0c 是数据的组织形式 xf
  • 【入门篇】ESP8266直连智能音箱(天猫精灵)控制智能灯

    本系列博客学习由非官方人员 刘一周 潜心所力所写 xff0c 仅仅做个人技术交流分享 xff0c 不做任何商业用途 如有不对之处 xff0c 请留言 xff0c 本人及时更改 本系列博客内容是通过乐鑫ESP8266直连天猫精灵 xff0c

随机推荐

  • 如何进行CAN总线高效测试?

    CAN总线自BOSCH公司发明以来 xff0c 在汽车通信网络中的应用得到了广泛认可 随着汽车电子技术的发展 xff0c 车上的电子模块越来越多 xff0c 汽车内部的CAN总线节点也随之增多 一般汽车内部CAN节点少则10个 xff0c
  • keil5 中文注释

    keil5 中文注释 点击 Edit gt configuration 如下图 xff1a 在Editor界面中选择Encoding xff0c 如下图 xff0c 这三个均可显示中文注释 xff0c 推荐第一个 xff0c 保持Keil代
  • 【CMake学习】list使用

    添加链接描述 一 介绍 cmake的list命令即对列表的一系列操作 xff0c cmake中的列表变量是用分号 分隔的一组字符串 xff0c 创建列表可以使用set命令 xff08 参考set命令 xff09 xff0c 例如 xff1a
  • 【ros+movros安装与飞控连接测试,pixhawk2.4.8】

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 ros安装二 mavros总结 前言 记一下装ros和movros的过程顺便把一些重要的链接保存一些 提示 xff1a
  • 使用docker发布.net应用

    步骤 xff1a 创建 NET应用样例 创建包含生成 NET镜像所需引导的Dockerfile 构建一个镜像并基于此创建一个容器 设置容器数据卷和网络设置 使用Docker Compose编排容器 使用容器构建开发坏境 创建镜像 先决条件
  • python计算机视觉--全景图像拼接

    目录 一 RANSAC算法 1 1 RANSAC算法简介 1 2 算法基本思想和流程 1 3 RANSAC求解单应性矩阵 二 图像映射与全景拼接 2 1 简介 2 2 计算第二张图像与第一张图像之间的变换关系 2 3 将第二张图像叠加到第一
  • px4自带教程offboard下的gazebo多无人机编队仿真

    px4自带教程offboard下的gazebo多无人机编队仿真 主要教程参考这篇文章 xff0c offboard代码也源自下面链接 xff0c 增加了其他文件的配置细节 xff0c 链接如下 xff1a https blog csdn n
  • rotors_simulator与sitl_gazebo冲突导致报错“gzserver....”

    rotors simulator与sitl gazebo冲突导致报错 gzserver 创建时间2021 04 14 报错图片详见2021 04 14屏幕截图 总是出现gzserver symbol lookup error home zy
  • 安装ROS、gazebo、PX4基础细节及offboard控制

    新手参考教程安装ROS gazebo PX4基础细节及offboard控制 1 安装ROS 参考教程 2 安装PX4 参考教程 注 xff1a 1 在编译px4 Firmware前会经过安装步骤 xff0c 安装需要去github上git
  • 无人机模型记录

    今天看了这篇知乎 xff0c 收获非常大 xff0c 实现了一个非常基础的无人机动力学以及运动学模型 xff0c 包括公式推导等 xff0c 也解决了困扰我很久的问题 xff0c 在此基础上就可以加入控制算法 xff0c 设置轨迹等 htt
  • VMware安装Ubuntu20.04.5常见问题及解决方案

    文章目录 使用Xftp连接ubuntu系统ubuntu上安装指定版本nodejsubuntu设置连网ubuntu安装Java8ubuntu安装 deb格式软件ubuntu卸载 deb格式软件ubuntu中electron框架安装的缓存在如下
  • 无人机控制输入、PID控制

    无人机控制输入 PID控制 最近思路比较乱 xff0c 看到很多东西 xff0c 因为有各种控制 xff0c 需要在这里记录总结 控制输入 结合以下两个链接理解虚拟控制输入U1 U2 U3 U4 1 https blog csdn net
  • FreeRTOS学习(3)——任务创建和删除(静态)

    本代码是基于正点原子的STM32Mini板子 xff0c 结合其FreeRTOS课程进行学习 实验一 xff1a 设计4个任务 xff1a start task task1 task2 task3 start task任务 xff1a 用来
  • 华三交换机配置定时重启任务

    组网及说明 1 配置需求或说明 1 1 适用产品系列 本案例适用于如S7006 S7503E S7506E S7606 S10510 S10508等S7000 S7500E S10500系列 xff0c 且软件版本是V7的交换机 1 2 配
  • RTK差分通讯链路---Ntrip DTU(支持千寻位置,CORS站、自建站)

    在之前的博客中提到RTK差分通讯链路 电台 RTK技术的关键在于其获取了载波相位的观测量 xff0c 通过架设基准站和移动站 xff0c 利用电台的通讯方式 xff0c 使得移动站通过差分方式消除观测数据误差实现高精度 还有一种通讯方式 x
  • 北斗/GPS如何处理定位漂移?

    漂移是北斗 GPS导航时需要处理的问题之一 xff0c 漂移主要有两个方面 xff0c 第一 xff0c 速度过快 xff0c 以至于北斗 GPS的响应时间短于当前运行速度 xff0c 出现漂移 xff1b 第二 xff0c 在高大建筑密集
  • Jetson nx批量复制

    Jetson NX 批量克隆教程 文章目录 Jetson NX 批量克隆教程一 批量克隆是什么 xff1f 二 克隆步骤1 准备材料2 备份镜像3 克隆新SD卡 解压失败问题参考 一 批量克隆是什么 xff1f 辛辛苦苦在Jetson Xa
  • FreeRTOS一些常识笔记之快速上手

    一 为啥要用实时多任务操作系统 real time Operate System 简称有 xff1a RTOS xff0c 有如下的好处 用户无需关心时间信息 内核负责计时 xff0c 并由相关的API完成 xff0c 从而使得用户的应用程
  • Prometheus+node_exporter+grafana监控部署(上)

    目录 一 部署Prometheus 二 部署node exporter 三 把node exporter加载进Prometheus 四 部署grafana 一 部署Prometheus 1 从官网下载好Prometheus的安装包 2 解压
  • Zookeeper入门篇

    Zookeeper特性 xff1a Zookeeper xff1a 一个领导者 xff08 Leader xff09 xff0c 多个跟随者 xff08 Follower xff09 组成的集群 集群中只要有半数以上 xff08 不包括半数