Zookeeper分布式应用程序协调服务

分布式应用程序协调服务 ZooKeeper 详解 详细讲解分布式应用程序协调服务 ZooKeeper 的相关内容。 阅读详情

ZooKeeper 到底是个什么东西?

ZooKeeper 作为 Dubbo 的注册中心

Zookeeper 是 Hadoop 生态系统的一员。

zookeeper是一个开源的服务软件,需要安装到linux中。

构建 Zookeeper 集群的时候,使用的服务器最好是奇数台。

ZooKeeper的基本运转流程:

1、选举Leader。

2、同步数据。

3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。

4、Leader要具有最高的执行ID,类似root权限。

5、集群中大多数的机器得到响应并接受选出的Leader。

 

Zookeeper的作用

树形目录结构

异步通知机制

Zookeeper安装

确认JDK

[root@rich ~]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

 

Zookeeper解压

第一步:上传zookeeper-3.4.9.tar.gz到/opt目录

第二步:解压

tar -zxvf /opt/zookeeper-3.4.9.tar.gz

第三步:进入解压目录下的conf目录

cd /opt/zookeeper-3.4.9/conf

第四步:复制得到配置文件

cp zoo_sample.cfg zoo.cfg

第五步:创建数据目录

mkdir /opt/zookeeper-3.4.9/data

第六步:修改zoo.cfg配置文件

dataDir=/opt/zookeeper-3.4.9/data

 

常用四字命令(运维人员常用)

Are your ok?                                                                                   I am ok

ruok:测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何响应

stat:输出关于性能和连接的客户端的列表

conf:输出相关服务配置的详细信息

cons:列出所有连接到服务器的客户端的完全的连接 /会话的详细信息。包括“接受 / 发送”的包数量、会话id 、操作延迟、最后的操作执行等等信息

dump:列出未经处理的会话和临时节点

envi:输出关于服务环境的详细信息(区别于conf命令)

reqs:列出未经处理的请求

wchs:列出服务器watch的详细信息

wchc:通过session列出服务器watch的详细信息,它的输出是一个与watch相关的会话的列表

wchp:通过路径列出服务器 watch的详细信息。它输出一个与 session相关的路径

节点状态

czxid:引起这个znode创建的zxid,创建节点的事务的czxid(create ZooKeeper Transaction Id)

ctime:znode被创建的毫秒数(从1970年开始)

mzxid:znode最后更新的zxid

mtime:znode最后修改的毫秒数(从1970年开始)

pZxid:znode最后更新的子节点zxid

cversion:znode子节点变化号,znode子节点修改次数

dataversion:znode数据变化号,也就是版本号

aclVersion:znode访问控制列表的变化号

ephemeralOwner:如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0。

dataLength:znode的数据长度

numChildren:znode子节点数量

版本号的作用

Zookeeper里面的版本号和我们理解的版本号不同,它表示的是对数据节点的内容、子节点列表或者ACL信息的修改次数。节点创建时dataversion、aclversion,cversion都为0,每次修改响应内容其对应的版本号加1。

这个版本号的用途就和分布式场景的一个锁概念有关。比如演出售票中的一个座位,显然每个场次中的每个座位都只有一个,不可能卖出2次。如果A下单的时候显示可售,他想买,那么为了保证他可以下单成功,此时别人就不能买。这时候就需要有一种机制来保证同一时刻只能有一个人去修改该座位的库存。这就用到了锁。锁有悲观锁和乐观锁。

  • 悲观锁:它会假定所有不同事务的处理一定会出现干扰,数据库中最严格的并发控制策略,如果一个事务A正在对数据处理,那么在整个事务过程中,其他事务都无法对这个数据进行更新操作,直到A事务释放了这个锁。

  • 乐观锁:它假定所有不同事务的处理不一定会出现干扰,所以在大部分操作里不许加锁,但是既然是并发就有出现干扰的可能,如何解决冲突就是一个问题。在乐观锁中当你在提交更新请求之前,你要先去检查你读取这个数据之后该数据是否发生了变化,如果有那么你此次的提交就要放弃,如果没有就可以提交。

Zookeeper中的版本号就是乐观锁,你修改节点数据之前会读取这个数据并记录该数据版本号,当你需要更新时会携带这个版本号去提交,如果你此时携带的版本号(就是你上次读取出来的)和当前节点的版本号相同则说明该数据没有被修改过,那么你的提交就会成功,如果提交失败说明该数据在你读取之后和提交之前这段时间内被修改了。

这里通过set命令并携带版本号提交更新,版本号相同更新就会成功。

Zookeeper服务器客户端操作

启动服务器

/opt/zookeeper-3.4.9/bin/zkServer.sh start

查看服务器状态

[root@rich bin]# /opt/zookeeper-3.4.9/bin/zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: standalone

日志文件

zookeeper.out

停止服务器

/opt/zookeeper-3.4.9/bin/zkServer.sh stop

使用客户端登录服务器,登录之前要启动服务器

/opt/zookeeper-3.4.9/bin/zkCli.sh -server 192.168.200.100:2181

如果是本机和默认2181端口号-server后面部分可以省略

 

Zookeeper常用命令

ZooKeeper服务器与客户端

在/opt/zookeeper-3.4.9/bin目录下

启动服务器:./zkServer.sh start

停止服务器:./zkServer.sh stop

制作开机启动的脚本

把如下脚本复制进去,注意:先i,然后在复制

#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
ZK_PATH=/opt/zookeeper
export JAVA_HOME=/opt/jdk1.8.0_152
case $1 in
         start) sh  $ZK_PATH/bin/zkServer.sh start;;
         stop)  sh  $ZK_PATH/bin/zkServer.sh stop;;
         status) sh  $ZK_PATH/bin/zkServer.sh status;;
         restart) sh $ZK_PATH/bin/zkServer.sh restart;;
         *)  echo "require start|stop|status|restart"  ;;
esac

 ZK_PATH=/opt/zookeeper
export JAVA_HOME=/opt/jdk1.8.0_152

注意:这二处地方要改成自己opt目录下对应的zookeeper

 

然后把脚本注册为Service

增加权限

初始化zookeeper配置文件

拷贝/opt/zookeeper/conf/zoo_sample.cfg   

到同一个目录下改个名字叫zoo.cfg

然后咱们启动zookeeper

以上状态即为安装成功。

 

在/opt/zookeeper-3.4.9/bin目录下

启动客户端:./zkCli.sh

退出客户端:[zk: localhost:2181(CONNECTED) 6] quit

查看节点的子节点:ls /zookeeper/quota

获取指定节点的值:get /zookeeper

设置指定节点的值:set /zookeeper hello

创建节点:create /fruit water

删除节点:delete /fruit/apple只能删除空节点

删除节点rmr /fruit空节点和非空节点都可以删除

-s:含有序列

创建有序列的节点:create -s /fruit/apple red

apple后面的0000000000就是序列

-e:临时(重启或者超时消失)

创建临时节点:create -e /fruit/orange yellow在重启后再查看就没有这个节点了

通过-e和-s可以把节点分为四个象限,四个情况的节点

 

 

Zookeeper集群搭建

集群中服务器间通信时用到3种端口号

  • 客户端访问端口号
  • 集群中服务器间数据同步端口号
  • 集群中follower服务器选举leader服务器端口号

 

集群中服务器编号

编号形式:1、2、3、……

指定编号:数据目录/myid文件中写入编号

编号和端口号在配置文件中的配置方式

客户端端口号

clientPort

编号和端口号

在配置文件末尾指定如下格式:

server.编号=IP地址:数据同步端口号:选举端口号

server.1=127.0.0.1:6001:6002

server.2=127.0.0.1:7001:7002

server.3=127.0.0.1:8001:8002

 

zkone步骤

创建目录

mkdir /opt/cluster_zk

重新解压Zookeeper

tar -zxvf /opt/zookeeper-3.4.9.tar.gz -C /opt/cluster_zk/

进入集群目录

cd /opt/cluster_zk

复制解压目录

cp -r zookeeper-3.4.9/ zkone

在zkone中创建data目录

mkdir /opt/cluster_zk/zkone/data

创建myid文件

vim /opt/cluster_zk/zkone/data/myid

进入zkone的conf目录

cd /opt/cluster_zk/zkone/conf/

复制得到zoo.cfg

cp zoo_sample.cfg zoo.cfg

编辑zoo.cfg

dataDir=/opt/cluster_zk/zkone/data/

clientPort=6000

server.1=127.0.0.1:6001:6002

server.2=127.0.0.1:7001:7002

server.3=127.0.0.1:8001:8002

 

zktwo步骤

复制zkone

cp -r /opt/cluster_zk/zkone/ /opt/cluster_zk/zktwo

将myid改成2

vim /opt/cluster_zk/zktwo/data/myid

修改配置文件

vim /opt/cluster_zk/zktwo/conf/zoo.cfg

dataDir=/opt/cluster_zk/zktwo/data/

clientPort=7000

三个客户端登录三个服务器

/opt/cluster_zk/zkone/bin/zkCli.sh -server 127.0.0.1:6000

/opt/cluster_zk/zktwo/bin/zkCli.sh -server 127.0.0.1:7000

/opt/cluster_zk/zkthree/bin/zkCli.sh -server 127.0.0.1:8000

可以看到现在zktwo是leader,zkone和zkthree是follower

如果leader服务器不能工作了,并不影响zkone和zkthree,因为zkone和zkthree二个服务器会选举出一个leader,三个服务器任何一个服务器不能工作,其他服务器都可以正常运行,并且可以保证数据同步。

 

集群数量为什么是单数?

zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;同理你多列举几个:2->0;3->1;4->1;5->2;6->2会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

计算机视觉——多视图几何 多视图几何1.前言1.1 多视图几何概念2. 基本原理2.1 对极几何2.2 基础矩阵2.2.1 基础矩阵推导2.2.2 求解基础矩阵3. 实验过程3.1 实验数据准备3.2 实验代码3.3 实验结果及分析4. 实验中遇到的问题 1.前言 1.1 多视图几何概念 多视图几何是利用在不同视点所拍摄图像间的关系,来研究照相机之间或者特征之间关系的一门科学。 多视图几何(Multiple View ... 阅读详情

相关推荐

YOLOv5模型转换陷阱:从PT到RKNN的置信度异常与乱框问题深度解析

本文深度解析了YOLOv5模型从PT到RKNN转换过程中的置信度异常与检测框错乱问题,揭示了NPU硬件特性与模型结构不匹配的根本原因。通过详细的解决方案和实操步骤,包括模型修改、转换流程配置和验证技巧,帮助开发者有效解决这一常见部署难题,提升模型在瑞芯微芯片上的推理性能。

weixin_29062255的博客 907

Zookeeper的功能以及工作原理

1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户 2.ZooKeeper提供了什么? 1)文件系统 2)通知机制 3.Zookeeper文件系统 每个子目录项如 NameService 都被称作为znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode

lgxzzz的博客 352

精通DC-DC变换器:Boost升压电路全解析

Boost升压变换器是一种将低直流电压转换为高直流电压的常用电路。其核心工作原理是通过电感储能:开关导通时电感充电,关断时电感与电源串联向负载供电。关键公式表明输出电压Vo=Vi/(1-D),占空比D越大,升压比越高。变换器工作时会产生电感电流纹波和输出电压纹波,需合理选择电感和电容参数。开关管和二极管需承受完整的输出电压,对元器件选型要求较高。理解这些原理是设计高效升压电源的基础。

2511_92918351的博客 3712

什么是Zookeeper?Zookeeper都有哪些功能?

什么是Zookeeper?Zookeeper都有哪些功能? 一、Zookeeper是什么?谈谈对它的理解 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,他是一个为分布式应用提供一致性服务的软件(简单来说:Zookeeper就是一个分布式应用程序协调服务)。 二、Zookeeper服务的目标是什么? Zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 三、Zookeeper都有哪些功能? 1.统一命名服务 分布式应用中,通常需要

weixin_43950588的博客 5696

射频接收机本振相噪指标计算:从倒易混频到GSM实战

在射频接收机设计中,相位噪声是衡量本振信号频谱纯度、影响系统灵敏度的关键指标。其核心影响机制源于倒易混频原理:当不纯净的本振信号与强带外阻塞信号混频时,本振的噪声边带会被转换到中频通带内,从而抬升接收机噪声基底。这一过程直接决定了接收机在阻塞测试等场景下的性能极限。从技术价值看,精确计算本振相噪要求,是进行系统噪声预算、实现成本与性能权衡的核心依据。尤其在手机、基站等对灵敏度要求极高的应用中,它指导着锁相环和压控振荡器的选型与设计。本文以经典的GSM DCS1800标准为例,通过详细的公式推导与变量分析,演

weixin_30368405的博客 329

ZooKeeper能做什么?

什么是 ZooKeeper ZooKeeper 是一个高性能、集中化、分布式应用程序协调服务,是Hadoop和Hbase的重要组件,主要是用来解决分布式应用中用户经常遇到的一些数据管理问题,例如:统一命名服务、统一配置管理、统一集群管理、分布式锁等。 ZooKeeper 提供一种类似目录树结构的数据结构,跟 Unix 文件系统路径相似的节点,可以往这个节点存储或获取数据,而每个节点叫做 ZNode。每一个节点可以通过路径来标识。 结构图如下: Znode 分为两种类型: 短暂/临时(Ephemeral):

养歌的博客 1万+

Linux内核4.14版本——drm框架分析(1)——drm简介

本文介绍了DRM架构的发展历史、驱动框架以及简单示例,旨在帮助读者了解DRM架构的形成、功能流程实现。

phmatthaus的专栏 2559

ZooKeeper分布式应用程序协调服务

ZooKeeper分布式应用程序协调服务详细介绍;实验部署ZooKeeper集群

MONGJUK的博客 1349

辐射制冷无规散射结构非球形散射体的结构优化与设计准则

本文针对辐射制冷材料中非球形散射体的光散射特性开展研究,提出了一种基于体积散射截面和不对称因子的综合评价方法。通过建立简化模型分析球体、圆柱体、长方体等六种几何形状在太阳波段的散射性能,发现金字塔形和圆锥形具有更强的后向散射能力。研究创新性地提出"反射因子SR=S(1-g)"这一评价参数,该参数与宏观反射率高度相关,为非球形散射体的优化设计提供了定量依据。仿真结果表明,合理选择散射体形状可显著提升辐射制冷材料的太阳反射率,为实现高效被动制冷提供了新的结构设计思路。

huanghm88的专栏 83

基于STM32L4XX、HAL库的DP83822 以太网收发器(PHY)驱动程序设计

一、简介:DP83822是德州仪器(TI)推出的一款低功耗、高性能10/100Mbps以太网物理层收发器(PHY)。它具有以下主要特性:支持10BASE-T和100BASE-TX以太网标准低功耗设计,适合嵌入式应用MII/RMII接口,方便与微控制器连接内置自检和诊断功能支持自动协商和手动配置工业级温度范围(-40°C至+85°C)

zhusl6688的博客 531

Zookeeper简介、原理和功能?

zookeeper的简介、原理、总体架构

总结复盘,才能不迷失自己! 2916

SAP:QUERY中SQ02增加选择屏幕权限控制

【代码】SAP:QUERY中SQ02增加选择屏幕权限控制。

weixin_43734184的博客 2326

分布式应用程序协调服务zookeeper在.NET平台上的使用

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee

每天进步一点点 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

分布式应用程序协调服务zookeeper

zookeeper   应用程序协调服务  ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,包含一个简单的原语集,是Hadoop和Hbase的重要组件。分布式应用可以使用它来实现诸如:统一命名服务、配置管理、分布式锁服务、集群管理等功能。   1)ZooKeeper的基本原理   ZooKeeper是以Fast Paxos算法为基础的,在前一篇blog中大

thinkone的博客 1405

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ZooKeeper:分布式应用程序的分布式协调服务

  ZooKeeper--动物园管理员 ZooKeeper:分布式应用程序的分布式协调服务 设计目标 数据模型和分层命名空间 节点和短暂节点 有条件的更新和手表 担保 简单的API 履行 用途 性能 可靠性 ZooKeeper项目 ZooKeeper:分布式应用程序的分布式协调服务 ZooKeeper是一种用于分布式应用程序的分布式开源协调...

YunWisdom 522

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Zookeeper: 一个分布式应用程序协调服务

Zookeeper: A Service for Coordinating Processes of Distributed ApplicationsA Scalable,reliable,robust centrailized service ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zooke

lilele12211104的专栏 6926

分布式应用程序协调服务软件--zookeeper

分布式应用程序协调服务软件–zookeeper

weixin_45680960的博客 334

ZooKeeper分布式应用程序的分布式协调服务:概述,入门,发布版本

ZooKeeper概述适用于客户端开发人员,管理员和贡献者的技术概述文档 概述-ZooKeeper的鸟瞰图,包括设计概念和体系结构 入门-教程风格的指南,供开发人员安装,运行和编程到ZooKeeper 发行说明-开发人员和面向用户的新功能,改进和不兼容 目录 ZooKeeper:概述 ZooKeeper:分布式应用程序的分布式协调服务 设计目标 数据模型和分层名称空间 节点和短暂节点 有条件的更新和监视 保证金 简单的API 实作 用途 性能 可靠性 ZooKeeper...

RToax 797

ZooKeeper 开放源码的分布式应用程序协调服务

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,包含一个简单的原语集,是Hadoop和Hbase的重要组件。分布式应用可以使用它来实现诸如:统一命名服务、配置管理、分布式锁服务、集群管理等功能。   1)ZooKeeper的基本原理   ZooKeeper是以Fast Paxos算法为基础的,在前一篇blog中大致介绍了一下paxos,而没有提到的是paxos存在活

晓春明月 1167

zookeeper分布式应用程序协调服务

ZooKeeper是一个分布式的应用程序协调服务 ZooKeeper是Hadoop和Hbase的重要组件,Hbase和ZooKeeper之间具有强依赖的关系. ZooKeeper为分布式应用提供一致性服务,它的功能包括:配置维护/域名服务/分布式同步/组服务和分布式锁的服务等. ZooKeeper角色图 各服务器和Leader发生数据交换,Leader保证集群的数据同步 Follower...

何星驰的专栏@17316365004@sina.cn 1723

详解分布式应用程序协调服务Zookeeper

详解分布式应用程序协调服务Zookeeper 主从结构:HDFS、Yarn、HBase、storm、spark、zookeeper都存在单点故障问题 hadoop1.x没有解决方案 hadoop2.x利用zookeeper实现HA zookeeper是开源的分布式应用程序协调服务,是Google chubby的开源实现 zook...

232

ZooKeeper分布式的、开放源码的分布式应用程序协调服务

概念了解: [code="java"] ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统...

编程日常记录与总结 https://franciswmf.iteye.com 303
上一篇: FastDFS分布式文件系统
下一篇: Linux系统:第七章:Linux最常用命令汇总
Java程序员廖志伟
Java程序员廖志伟 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄8年 2万+粉丝 1902原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java程序员廖志伟

赏我包辣条呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值