【从入门到放弃-ZooKeeper】ZooKeeper入门

前言

ZooKeeper是一个分布式服务协调框架,可以用来维护分布式配置信息、服务注册中心、实现分布式锁等。在Hbase、Hadoop、kafka等项目中都有广泛的应用。随着分布式、微服务的普及,ZooKeeper已经成为我们日常开发工作中无法绕过的一环,本文将从安装配置到最基础的使用入手,对其进行介绍。

安装部署

下载

在 http://mirror.bit.edu.cn/apache/zookeeper/stable/ 下载推荐的stable版本。可以直接下载编译好的bin文件。
目前最新的stable版本是3.5.5

解压

将下载的文件解压至工作目录,我的工作目录是/var/workspace/zookeeper

tar -xzvf apache-zookeeper-3.5.5-bin.tar.gz -C /var/workspace/zookeeper

配置

此时如果直接启动zookeeper是会失败的,提示找不到zoo.cfg文件。
需要我们把conf目录中提供的zoo_sample.cfg示例配置文件,复制为一份zoo.cfg,zoo.cfg是默认的启动配置文件

cp ../conf/zoo_sample.cfg ../conf/zoo.cfg

启动

默认启动,使用config/zoo.cfg配置文件在后台启动

前台启动,会将启动日志打印在终端。终端关闭后服务也关闭。

访问

使用zcCli.sh -server host:port 访问ZooKeeper服务器。
不加-server参数时,默认使用127.0.0.1:2181

使用

ZooKeeper使用类似资源文件目录的方式来管理节点,每个节点可以存储数据。
ZooKeeper有四种不同类型的节点:

  • PERSISTENT:持久化节点,除非手动删除,否则会永久保存
  • PERSISTENT_SEQUENTIAL:持久化顺序节点,除非手动删除,否则会永久保存。默认会在用户设置的节点名称后,顺序的增加十位的数字字符串。如 test_0000000001
  • EPHEMERAL:临时节点,在session结束后,临时节点会被自动删除。
  • EPHEMERAL_SEQUENTIAL:临时顺序节点,在session结束后,临时节点会被自动删除。默认会在用户设置的节点名称后,顺序的增加十位的数字字符串。如 test_0000000001

help

使用zkCli.sh连接到服务端后,可以使用help展示常见命令的使用方式。

ls

列出某个路径下的节点

create

可以使用create {path} 创建节点。
使用 create -s {path} 可以创建有序节点,后面添加十位递增的数字后缀。

使用 create -e 创建临时节点,当断开连接后,临时节点会被删除。

set/get

ZooKeeper的节点可以存储数据,使用set 方法将数据存在节点中。
使用get 方法,从节点中获取数据。

set -v {currentVersion} {path} {data}

节点的数据每次更新时,都会递增,如果要更新节点,请使用上面的命令修改,如果currentVersion不是最新版本时,则更新失败,类似乐观锁CAS。

delete

可以通过delete删除节点。

总结

通过上面的学习,我们已经学会了ZooKeeper最基本的安装部署及使用方式。需要牢记:

  • ZooKeeper的节点是类似文件系统的管理方式
  • Zookeeper有四种节点类型,临时节点会在会话断开后自动删除,顺序节点后缀序号会自动递增
  • set数据时,可以指定版本号,版本号与当前版本一致时才更新。这种乐观锁的更新方式,可以避免并发时数据被覆盖


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517942.shtml

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

相关文章

ln: failed to create symbolic link ‘/usr/bin/mysql’: File exists

问题描述: ln -s /usr/local/mysql/bin/mysql /usr/bin 在centos7进行软链接设置的时候,出现了这么问题:问题就是说这个文件已存在, 解决方法:覆盖之前的 ln -sf /usr/local/mysql/bin/mysql /usr/bin

读透《阿里巴巴数据中台实践》,其到底有什么高明之处?

最近阿里巴巴分享了《阿里巴巴数据中台实践》这个PPT(自行搜索原始文章),对于数据中台的始作俑者,还是要怀着巨大的敬意去学习的,因此仔细的研读了,希望能发现一些不一样的东西。 读这些专业的PPT&#xf…

如果你也想做实时数仓…

数据仓库也是公司数据发展到一定规模后必然会提供的一种基础服务,数据仓库的建设也是“数据智能”中必不可少的一环。本文将从数据仓库的简介、经历了怎样的发展、如何建设、架构演变、应用案例以及实时数仓与离线数仓的对比六个方面全面分享关于数仓的详细内容。 …

华为云战略投入政企市场,发布华为云Stack

2020年5月15日,华为云发布政企战略,并宣布华为云Stack系列新品正式上市。华为云Stack是位于政企客户本地数据中心的云基础设施,能为政企客户提供在云上和本地部署体验一致的云服务。随着政企智能升级进入深水区,华为云将战略投入政…

如何在 Apache Flink 中使用 Python API?

本文根据 Apache Flink 系列直播课程整理而成,由 Apache Flink PMC,阿里巴巴高级技术专家 孙金城 分享。重点为大家介绍 Flink Python API 的现状及未来规划,主要内容包括:Apache Flink Python API 的前世今生和未来发展&#xff…

阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务

1、HBase Ganos是什么 Ganos是阿里云时空PaaS服务的自研核心引擎。Ganos已作为云数据库时空引擎与数据库平台融合,建立了以自研云原生数据库POALRDB为基础,联合NoSQL大数据平台(Ali-HBASE和X-Pack Spark)的完整时空地理信息云化管…

看完这篇操作系统,和面试官扯皮就没问题了!

作者 | Cxuan责编 | Carol来源 | 程序员 cxuan封图 | CSDN 付费下载于视觉中国1、解释一下什么是操作系统操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层。通常情况下,…

Linux centos7 安装 MySQL5.7.x

文章目录一、下载安装2. wget 下载方式3. 安装4. 初始化数据库二、修改密码2.1. 修改密码2.2. 修改密码2.3. 允许远程访问2.4. 关闭防火墙2.4. 建立mysql软连接一、下载安装 下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 下载地址&#xff…

顺序结构,选择结构,反编译

顺序结构 Java基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句的执行顺序结构是最简单的算法结构任何一个算法都离不开的一种基本算法结构 package com.boss.struct;public class ShunXuDemo {public static void main(String[] args) {Sys…

助力共享经济,芝麻信用背后的技术

近期,CCTV9播放了自制的系列纪录片《大数据时代》,该片是国内首部大数据产业题材纪录片,节目细致而生动地讲述了大数据技术在政府治理、民生服务、数据安全、工业转型、未来生活等方面给我们带来的改变和影响。在第四集中,讲述了芝…

你的项目是否真的需要 DevOps?

DevOps即服务(DevOps-as-a-Service)是一种新兴的开发理念。DevOps作为一种方法,将传统的团队协作转移到开发和运维团队中,通过使用可堆叠的虚拟扩展工具实现自动化。作者 | raghuraji300译者 | Arvin,责编 | 屠敏头图 …

与你同行,才能无障碍

先给大家分享一个笔者的真实故事。前阵子她被诊断得了急性结膜炎,医生切切叮嘱 72 小时里多闭目养神不能目视任何自光源体,“尤其是电脑和手机!”医生特地关照了一句。 她好不容易挪回家,想起一整天未能进食,作为淘宝…

震惊!阿里的程序员竟被一个简单的 SQL 查询难住了!

作者 | 唐磊责编 | Carol来源 | 程序猿石头封图 | CSDN 付费下载于视觉中国最近工作上遇到一个”神奇”的问题,或许对大家有帮助,因此形成本文。问题大概是,我有两个表 TableA,TableB,其中 TableA 表大概百万行级别(存…

ETL异构数据源Datax_datax-web安装部署_10

文章目录1. 解压2. 一键安装3. 修改执行器py地址4. 一键启动5. 查看启动日志6. 访问地址登录7. 操作记录1. 解压 tar -zxvf datax-web-2.1.2.tar.gz2. 一键安装 # 执行一键安装脚本,系统中需要有mysql环境,会自动执行sql文件初始化bin/install.sh cd datax-web-2.1.2/ bin/in…

3D 真的很难吗,瞧瞧支付宝怎么做?

阿里妹导读:图像作为人类感知世界的视觉基础,是我们在这个信息化时代获取信息、表达信息及传递信息的重要手段,而生成图像最高效准确的方式就是由计算机生成、显示、绘制,这些技术又统称计算机图形技术。计算机图形技术已经是许多…

OpenStack发布Ussuri版本 实现智能开源基础设施的自动化

从2010年到2020年,OpenStack项目整整走过了十个春夏秋冬。10年来,关于OpenStack的争议持续不断,但不可否认的是,在不同技术路线的争执中,OpenStack所展现的蓬勃生命力仍无可比拟。据451研究机构2019年9月发布的市场监测…

ETL异构数据源Datax_图形化数据同步_11

数据同步全量增量知识SQL和执行频次不一样,其他的都一样 文章目录一、Oracle同步Mysql(全量)1. 添加项目2. 添加数据源3. 添加任务4. 构建json5. 任务执行6. 查看日志7. 同步数量对比二、Mysql同步Oracle(全量)2.1. 添加构建reader2.2. 添加构建writer2.3. 配置同步…

RocketMQ消息轨迹-设计篇

RocketMQ 消息轨迹主要包含两篇文章:设计篇与源码分析篇,本节将详细介绍RocketMQ消息轨迹-设计相关。 RocketMQ消息轨迹,主要跟踪消息发送、消息消费的轨迹,即详细记录消息各个处理环节的日志,从设计上至少需要解决如…

红帽加速开放混合云创新,助力企业成功迈向开源应用时代

2020年的开局让人有些意想不到,一场新冠疫情给人们的生活带来了前所未有的改变。对于企业更是有着数不尽的困难与挑战。在过去的三个月当中,全世界都面临着有关于“虚拟会议”所带来的便捷与隐患问题,原因在于虚拟会议中对于网络体验与安全的…

ETL异构数据源Datax_自增ID增量同步_12

文章目录增量同步方法 1.先同步存量数据 2.再同步增量数据(根据自增ID、日期条件) 前提条件: 1.只针对数据增长,如果老数据被update/delete则无法使用增量同步方式。 基于主键自增ID增量同步 Oracle同步Mysql演示 idno采用序列自增 添加项目 AutoIncr…