zookeeper快速入门——部署

ZooKeeper集群 文章目录Zookeeper概述Zookeeper定义Zookeeper 工作机制 Zookeeper概述 Zookeeper定义 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper 工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。也 阅读详情

        zookeeper有两种运行模式:独立模式和仲裁模式。独立模式就是只运行一个Zookeeper Server,这自然没法解决服务崩溃导致系统不可用的问题。仲裁模式就是以集群的方式运行Zookeeper Server,这样在Leader不可用时,集群内部会发起选举,而推选一个新的Leader。既然我们要使用zookeeper,肯定是有分布式协作需求,所以本文只讲述仲裁模式的部署。(转载请指明出于breaksoftware的csdn博客)

        为了方便大家测试,我们将Zookeeper Server部署在同一台机器上,通过对外提供不同的端口号来模拟多机部署。

        首选我们要选择部署几个Server服务(不考虑Observer)。2个?3个?4个?如果一定要在三个数字中选,大部分建议是选择3个。

        如果选择2,那么依据少数服从多数的原则,要求Leader的必须获得2票。如果坏了一台机器,剩下的那台机器肯定得不到2票,那么整个系统将不可用。于是损失一台机器的系统可用率是0。

        如果选择是3,要求Leader的票数也必须>=2。如果坏了一台机器,剩下的两台机器可以抉择出哪台可以得到2票,从而系统可用。如果又坏了一台,剩下一台机器不可能得到2票。于是损失一台机器的系统可用率是100%,损失两台机器的系统可用率是0。

        如果选择4,要求Leader的票数>=3。如果坏了一台机器,剩下的三台机器可以抉择出哪台可以得到3票,从而系统可用。如果又坏了一台,剩下的两台机器不可能得到3票。于是损失一台机器的系统可用率是100%,损失两台机器的系统可用率是0。

集群机器数损失1台机器系统可用率损失2台机器系统可用率
200
3100%0
4100%0

        可以看出来在损失2台机器的情况下,集群部署3台或者4台的系统可用率是相等的。部署4台并不比部署3台要可靠。

        也许有人开始质疑“少数服从多数”这个选举原则。如果4台机器只要有机器获得2票,就可以被认为是Leader,那不就提高了可用率了么?答案是这样的设计会导致严重的问题。

        如下图,ABCD构成了一个集群,其中A是Leader。开始时甲连接的是A机器,ABCD各机器上服务保持了数据一致性。假如此时乙用户要连接任何一台服务,那么甲乙对数据的修改是彼此透明的。

        但是,如果此时CD和AB断开了连接。以获得2票成为Leader的原则,很有可能CD选举出C为Leader,D从此和C同步数据。AB选举出A为Leader,B只和A同步数据。假如此时乙用户要接入,而不巧接入到C或者D。那么甲乙对数据的修改就是隔离的。这样一个系统中出现两个Leader的现象称之为“脑裂”,这当然是不能接受的。

        选择好数量后,我们从https://www.apache.org/dyn/closer.cgi/zookeeper/下载并解压压缩包。以我环境为例,解压后文件路径为

$ pwd
/home/work/fangliang/zookeeper-3.4.11

        进入该目录,新建一个叫multi_server的文件夹。然后在其下新建z1、z2和z3三个目录,这三个目录分别用于保存三个Zookeeper Server的信息。

mkdir multi_server
cd multi_server
mkdir -p z1/data
mkdir -p z2/data
mkdir -p z3/data
echo 1 >  z1/data/myid
echo 2 >  z2/data/myid
echo 3 >  z3/data/myid

        myid文件的内容是其对应的服务id。

        然后在z1、z2和z3下分别创建z1.cfg,z2.cfg,z3.cfg三个文件。以z1.cfg为例,我们在文件中填充

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/work/fangliang/zookeeper-3.4.11/multi_server/z1/data
clientPort=2181
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445

        相应的,我们需要将z2.cfg和z3.cfg文件中dataDir指向自己目录,clientPort指向其他的端口

dataDir=/home/work/fangliang/zookeeper-3.4.11/multi_server/z2/data
clientPort=2182
dataDir=/home/work/fangliang/zookeeper-3.4.11/multi_server/z3/data
clientPort=2183

        整个文件的目录树如下

multi_server/
|-- z1
|   |-- data
|   |   |-- myid
|   |-- z1.cfg
|-- z2
|   |-- data
|   |   |-- myid|   
|   |-- z2.cfg
`-- z3
    |-- data
    |   |-- myid
    `-- z3.cfg

        接下来我们开始启动各个服务。

        首先启动z1。

        且到z1目录下,执行

../../bin/zkServer.sh start ./z1.cfg 

        当前目录下会生成一个日志文件zookeeper.out。

        第三行我们看到它发起了一次选举,但是由于其他两个服务没有启动,所以整个系统还不可用。

        然后我们启动z2。

        切到z2目录下,执行

../../bin/zkServer.sh start ./z2.cfg

        我们查看下z2目录下日志文件

        第三行显示z2也发起了一次选举,由于此时z3没有启动,所以它只能和z1进行通信。最终它们使用FastLeaderElection协商出z2作为Leader。

        然后z2和z1进行了数据同步。

        我们再看下z1日志的变化。

        z1仍然和z3通信失败。但是和z2通信后,自己成为了follower。

        最后我们启动z3。

        切到z3目录下执行

../../bin/zkServer.sh start ./z3.cfg

        查看z3的日志

        z3发起了一次选举,但是z2此时已经是leader了,所以z3顺理成章的成为follower,并从z2服务同步了一份数据快照

        此时看下z1的日志,它发现了z3

        再看下z2的日志,它发现z3后,给z3同步了一次数据

        我们切换到bin目录,执行

./zkCli.sh  -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

        让Client连接到上述三台机器中的一台,可以看到如下显示

软件架构-zookeeper集群部署与快速入门 目前的公司是使用的阿里内部的dubbo,也就是EDAS,里面用了阿里自己的EDAS服务,如果是使用过dubbo的老铁,应该知道zookeeper,zookeeper在大数据和RPC通信上应用比较管饭。不管用过zookeeper没有,这次主要是介绍下zookeeper和集群的部署。这个必须要实际操作下,才能理解的深刻。 源码:https://github.com/limingios/netFuture/ 【zookeeper】 (一)介绍zookeeper 历史 Zookeeper 最早起源于雅. 阅读详情

相关推荐

智警杯1.4---excel可视化

知识点

lulu001128的博客 949

ZooKeeper 集群的详细部署

ZooKeeper 集群的详细部署

slb190623的博客 8055

Android14 RK3576开发板有线网卡静态IP配置全攻略(附数据库修改详解)

本文详细介绍了在Android 14 RK3576开发板上实现有线网卡出厂默认静态IP配置的完整方案。通过深入修改系统源码和SettingsProvider数据库,扩展全局设置字段并注入默认值,确保设备首次启动即自动应用预设的IP地址、子网掩码、网关和DNS,适用于工业控制、数字标牌等批量部署场景,有效提升生产效率。

weixin_29253711的博客 606

Zookeeper概述及部署

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。Zookeeper的工作机制是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。也就是说Zookeeper=文件系统+通知机制。

Axic123的博客 3508

STM32入门教程:WiFi通信

STM32是一款强大的嵌入式系统开发平台,可以用于开发各种应用程序,包括WiFi通信。在本教程中,我们将介绍如何使用STM32开发板和WiFi模块进行无线通信。以下是一个详细的代码案例,涵盖了WiFi通信的基本概念和实现。

qq_67153941的博客 1348

脑机接口最新发展动态报告 (2024-2025)

脑机接口动态

高山 4105

zookeeper下载安装部署

zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目的一个子项目,并根据google发表的一篇论文来实现的。zookeeper为分布式系统提供了高效且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一命名服务,配置管理,状态同步和组服务等。

cxbtdd的博客 2544

保姆级教程:用MATLAB搞定运动模糊图片修复(附完整代码与避坑指南)

本文提供了一份详细的MATLAB运动模糊图片修复教程,涵盖盲复原、图像复原等核心技术。通过傅里叶变换和Radon变换分析模糊参数,对比逆滤波、维纳滤波和Lucy-Richardson算法效果,并附完整代码与避坑指南,帮助用户实现专业级图像处理。

weixin_26765363的博客 228

Zookeeper部署安装

Apache Zookeeper 是一个开源的分布式协调服务,主要用于分布式应用中的数据管理、配置管理和集群管理。Zookeeper 提供了一组简单的原语来实现分布式锁、命名服务、配置管理、集群管理等常用功能,广泛应用于 Hadoop、HBase 和 Kafka 等大数据组件中。主要特性顺序一致性:事务按顺序执行。原子性:事务的处理不可分割。单一视图:所有客户端看到的数据一致。可靠性:一旦客户端收到响应,事务便会永久保留。高可用性:Zookeeper 通过集群实现高可用。

xhcx_25的博客 1790

PyTorch强化学习实战(3)——Gymnasium API扩展功能

我们已经学习了编写智能体必需的 Gymnasium 核心功能,其余 API 功能部分虽然非必需,但能显著提升开发效率和代码整洁度。在本节中,我们简要地介绍了 Gymnasium API 的扩展功能,学习了如何以模块化的方式扩展现有环境的功能,并熟悉了使用包装器可视化智能体活动的方法。

盼小辉丶的博客 1194

eNSP常见故障处理

eNSP无法启动设备一直停在#井号的问题的解决方案?

lvshiliang123的博客 2万+

ZooKeeper快速入门系列(2) | Zookeeper的本地模式安装部署及配置参数解读

经过上一篇博文的简单介绍,相信大家对ZooKeeper有了一些初步的了解,那么,此篇博文,开始讲述Zookeeper的本地模式安装部署及配置参数解读。 目录一. Zookeeper的本地模式安装部署1.1 安装前准备1.2 配置修改1.3 操作Zookeeper二. 配置参数解读 在此博主先把自己用的ZooKeeper包上传到百度网盘,如有需要的可自行提取,在文章的最后也会介绍怎样在官网下载...

不温卜火 4967

52-Halcon-- smooth_object_model_3d函数功能(滑处理3D对象模型)

Halcon中smooth_object_model_3d算子详解 该算子用于3D模型平滑处理,提供三种算法:'laplacian'(快速去噪)、'taubin'(高质量防收缩)和'low_pass'(频域滤波)。核心参数包括迭代次数(默认5)、平滑强度(0-1)和边缘保护选项。典型应用包括扫描数据去噪、CAD模型光顺和逆向工程优化。支持自适应平滑、结合模型简化等高级技巧,并可通过分块处理优化大型模型性能。参数组合需根据具体场景选择,如快速去噪推荐拉普拉斯方法(5次迭代,强度0.3),特征保持推荐低通滤波(

weixin_45590420的博客 871

ZooKeeper快速入门系列(4) | Zookeeper分布式安装部署

  此篇是在Hadoop分布式环境搭建(简单高效~)这篇博文的基础上进行搭建的,如果有不会的同学可自行查看操作。同时,如果缺少Zookeeper包的同学可上博主的分享的百度云连接进行下载。 下面为百度云链接: 链接:https://pan.baidu.com/s/178EYOx9N5rHZyjRnrHu13Q 提取码:199b 目录1 集群规划1 解压安装3. 配置服务器编号4. 配置zoo.cf...

不温卜火 5352

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

快速入门Zookeeper分布式集群的部署

一、集群规划 在hadoop01、hadoop02、hadoop03三个节点上部署Zookeeper。 二、解压安装 1、将"/home/hadoop/tools/“目录下的压缩包解压到”/home/hadoop/install/"目录下 tar -zxf zookeeper-3.4.10.tar.gz -C /home/hadoop/install/ 2、在"/home/hadoop/inst...

IT Baicn的博客 281

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Zookeeper-快速入门(服务安装、单机部署、集群部署)

Zookeeper快速入门 基本介绍 官方介绍:Zookeeper是一个分布式的,开发源码的分布式应用协调服务,是Hadoop和Gbase的重要组件,它是一个为分布式应用提供一致服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等 Zookeeper下载 Zookeeper官网下载地址 Zookeeper解压 tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz Zookeeper配置 进入到conf目录下 cd apache-zookeeper-

JolyouLu的博客 276

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

zookeeper 密码_分布式系统中间件zookeeper,集群部署与快速入门

目前的公司是使用的阿里内部的dubbo,也就是EDAS,里面用了阿里自己的EDAS服务,如果是使用过dubbo的老铁,应该知道zookeeper,zookeeper在大数据和RPC通信上应用比较管饭。不管用过zookeeper没有,这次主要是介绍下zookeeper和集群的部署。这个必须要实际操作下,才能理解的深刻。(一)介绍zookeeper历史Zookeeper 最早起源于雅虎研究院的一个研究...

weixin_39637363的博客 162

【一篇入魂】Zookeeper快速入门,部署、集群、数据结构、API、原理、面试真题

第 1 章 Zookeeper 入门 1.1 概述 Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。 Zookeeper工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化 ,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。 1.2 特点 Zookeeper:一个领导者(Leader),多个跟随.

代码时光 250

zookeeper学习笔记(一)--快速入门与集群部署

分布式文件存储FASTDFS目录概 述小结参考资料和推荐阅读 LD is tigger forever,CG are not brothers forever, throw the pot and shine forever. Modesty is not false, solid is not naive, treacherous but not deceitful, stay with good people, and stay away from poor people. talk is chea

专注Java(全栈)应用开发,求知若渴,虚心若愚,talk is cheap, show me the code. 214

Linux零基础快速入门到精通 第五章 在Linux上部署各类软件 5.10 Zookeeper集群安装部署

Linux零基础快速入门到精通 第五章 在Linux上部署各类软件 5.10 Zookeeper集群安装部署

代码改变世界 512

ZooKeeper入门(第三章)

ZooKeeper入门指导 入门:在分布式协同系统中使用ZooKeeper 这篇文档包含的内容可以让你快速开始使用ZooKeeper。它主要针对希望尝试它的开发者,文档包含着在单台ZooKeeper服务器上的安装指导,也有一些验证ZooKeeper在运行的简单的命令,还有一些简单的编码案例。最后,为了方便,还有一部分内容是关于更复杂的安装,例如,运行复制部署,并优化事务日志。不过,关于完整的商业环...

小诸葛的博客 389

zookeeper安装配置与基本入门操作

1. zookeeper概要、背景及作用 2. 部署与常规配置 3. 节点类型

weixin_42213903的博客 1490

ZooKeeper快速启动

本文档帮助快速启动使用ZooKeeper。包含单个ZooKeeper服务器的简单安装说明、一些验证它是否运行的命令,以及一个简单的编程示例、更复杂的部署启动的,例如运行复制部署和优化事务日志。

RegretLi的博客 845

Zookeeper 下载安装

zookeeper安装搭建 启动master 启动slave1 启动slave2 查看master 查看slave1 查看slave2 (2)增加脚本执行权限

weixin_52112640的博客 2464

zookeeper 安装与运行

然后在对应的位置创建文件夹。首先需要java环境。

qq_42572322的博客 467
上一篇: zookeeper快速入门——简介
下一篇: zookeeper快速入门——应用(两种分布式锁)
breaksoftware
breaksoftware 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄20年 6901粉丝 724原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

breaksoftware

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值