zookeeper 搭建 linux

news2024/9/9 7:47:06

jdk安装

1.从网盘里下载jkd
2.创建安装目录,然后将jdk包解压到目录中

mkdir jdk

tar -zxvf jdk-8u271-linux-x64.tar.gz -C /home/ubuntu/app/jdk/

3.设置环境变量
修改 vi /etc/profile, 在 profile 文件中添加如下内容并保存:

set java environment
JAVA_HOME=/home/ubuntu/app/jdk/jdk1.8.0_271
JRE_HOME=/home/ubuntu/app/jdk/jdk1.8.0_271/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

注意:其中 JAVA_HOME, JRE_HOME 请根据自己的实际安装路径及 JDK 版本配置。

4.让配置生效

source /etc/profile

5.检查安装结果

java -version

image
如果出现上边结果,说明安装成功。

zookeeper安装

1.下载安装包https://zookeeper.apache.org/releases.htmlimageimage
2.将安装包上传到linux服务器上
3.创建安装路径,并将压缩包解压到安装路径中

mkdir zookeeper

tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz -C /home/ubuntu/app/zookeeper/

4.进入安装目录
a.创建data目录,存放我们的数据,使用以下命令

mkdir data

b.进入conf目录,把zoo_sample.cfg 复制一份,重命名为zoo.cfg.(名字叫zoo.cfg才会生效)

cd conf

cp zoo_sample.cfg zoo.cfg

c.修改zoo.cfg文件内容,将dataDir值改为我们创建的data目录image

5.启动测试
a. 进入zookeeper目录下的bin目录,使用命令启动zkServer.sh,后缀为sh的为linux启动,为cmd的是Windows下启动

./zkServer.sh start

image

b.启动后查看服务的状态,显示如下信息则启动成功

./zkServer.sh status

image
c.停止服务

./zkServer.sh stop

d.启动客户端

./zkCli.sh

节点增删改查

zookeeper有四种节点,临时节点,临时顺序节点,持久节点和持久顺序节点。

zookeeper节点的增删改查命令很简单,唯一需要注意的是create命令有两个参数,-s代表顺序节点,-e代表临时节点,临时节点当客户端断开时回销毁。

我们先用create /temp 123命令创建一个名为temp的znode节点,123是这个节点保存的data值。image
如果你输入的是get temp,那么会出现Path must start with / character提示,这是因为在zookeeper中,没有相对路径的概念,所有的节点都需要用绝对路径表示,也即所有节点名称都会以“/”开头。

zookeeper操作见博文 https://blog.csdn.net/lamfang/article/details/108954766

zookeeper分布式锁实现原理

image

比如有一个lock节点当做锁节点,所有客户端需要申请锁时,在lock节点下创建一个临时顺序节点。然后获取到lock节点的所有子节点,检查自己创建的节点是不是序号最小的节点,如果是表示申请到了锁,如果不是监听比自己序号小一位的节点。目的是为了在后续当比他小一位的节点客户端使用完锁之后,将此节点删除,自己能够知道获得了锁权限。

为什么会创建临时顺序节点?
创建临时节点是为了避免当某个客户端在获得锁之后发生了宕机,无法删除自己创建的锁节点,导致锁一直被占用的情况。创建顺序节点是为了排队

zookeeper集群管理

集群配置集群配置

1.在每个服务的zoo.cfg配中添加以下内容

server.1=集群1:2188:2888
server.2=集群2:2188:2888
server.3=集群3:2188:2888

2188与2888分别为默认的信息交互端口和选举端口

2.在每个服务下创建服务编号文件 myid, 在文件内指定编号echo "1" > myid

通过上边两步就配好了。

集群投票规则

每个单机会给当前启动服务编号最大的服务投票,当票数过半时,当选为lader。如果没有leader,集群将不可用。

参考链接:https://juejin.cn/post/7114254500692492301

python 调用zookeeper

1安装依赖库pip install kazoo==2.8.0

ps: 安装2.8.0版本,不然会有"Connection dropped:socket connection error:句柄无效"错误

2简单使用

from kazoo.client import KazooClient

zk = KazooClient(hosts='localhost:2181')
# 启动连接
zk.start()

# 创建节点,不设置数据
res = zk.ensure_path('/my/test')
print(111, res)

# 创建节点,并设置数据, ephemeral表示是否是临时节点,sequence表示是否是顺序节点
res = zk.create("/my/test/node", b"a value", ephemeral=True, sequence=False)
print(222, res)

# 获取子节点列表
children = zk.get_children("/my/test")
print(333, children)

# 获取节点数据data 和节点状态stat
data, stat = zk.get("/my/test/node")
print(444, data)
print(555, stat)

# 断开连接
zk.stop()  # 与zookeeper断开


# def my_func(event):
#     # 检查最新的节点数据
#     pass
#
#
# # 当子节点发生变化的时候,调用my_func
# children = zk.get_children("/my/favorite/node", watch=my_func)

输出结果image

参考连接:https://www.helloworld.net/p/7482175713

zookeeper可视化工具

https://www.cnblogs.com/ibigboy/p/16501139.html

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

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

相关文章

OpenAI-ChatGPT最新官方接口《AI绘图》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(三)(附源码)

ChatGPT-AI绘图 Image generation Beta 图片生成前言IntroductionUsageGenerationsEdits 编辑 VariationsLanguage-specific tips 特定语言提示Python 语言Using in-memory image data 使用内存中的图像数据Operating on image data 操作图像数据Error handling Node.js 语言Us…

手把手教你使用Python调用 ChatGPT!支持http代理

手把手教你使用Python调用 ChatGPT!支持http代理 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 前段时间OpenAI 开放了两个新模型的api接口,专门为聊天而生的…

《JavaEE初阶》多线程基础

《JavaEE初阶》多线程基础 文章目录《JavaEE初阶》多线程基础前言:多线程的概念简单创建线程并运行:简述Thread中run方法与start方法的区别创建线程的几种方法:探讨串行执行与并行执行的执行时间多线程的使用场景:Thread类简单介绍:构造方法:获取线程的常见属性:线程的常用方法…

Nacos 客户端服务发现源码分析-篇六

Nacos 客户端服务发现源码分析-篇六 🕐Nacos 客户端服务注册源码分析-篇一 🕑Nacos 客户端服务注册源码分析-篇二 🕒Nacos 客户端服务注册源码分析-篇三 🕓Nacos 服务端服务注册源码分析-篇四 🕔Nacos 服务端健康…

ChatGPT神器免费使用,告别昂贵低效工具

大家好,今天我要向大家介绍一款免费的ChatGPT使用网址,它可以让你轻松地使用ChatGPT进行AI创作!而且,这个网址还是免费的,不需要担心会有额外的费用。 ChatGPT是一种非常强大的AI技术,可以用于各种领域&…

《PyTorch 深度学习实践》第11讲 卷积神经网络(高级篇)

文章目录 1 Inception Module1.1 11卷积1.2 Inception模块结构1.3 完整代码 2 残差网络(Residual Network) 该专栏内容为对该视频的学习记录:【《PyTorch深度学习实践》完结合集】 专栏的全部代码、数据集和课件全放在个人GitHub了,欢迎自取。 1 Incept…

数据库实验 | 第3关:建立和调用存储函数

任务描述 本关任务: 销售数据库有顾客、销售单数据表 顾客gk数据表有会员号hyh、姓名name、性别sex、电话tel、部门dept字段 销售单xsd数据表有销售单号xsdh、会员号hyh、雇员号gyh、销售日期xsrq、应付款yfk、实际付款sjfk字段 任务要求 建立存储过程 gkjb(nf …

Obsidian中如何创作思维导图Mind-map

使用插件 obsidian-mind-map 1.直接在社区下载安装 设置快捷键或者在左侧竖形打开命令面板搜索关键字“mind”, 或者为了便于使用,设置快捷键,在设置-第三方插件中-选择快捷键 然后按下你想设置的快捷键就可以 我这里设置成了CtrlAltM ,M是…

小程序的组件化开发

目录: 1 小程序组件化思想 2 自定义组件的过程 3 组件样式实现细节 4 组件使用过程通信 5 组件插槽定义使用 6 Component构造器 在小程序里面需要创建组件的话需要在最外层建component包,然后在使用新建component来创建类似page的4个文件&#xff…

知乎版ChatGPT「知海图AI」加入国产大模型乱斗,称效果与GPT-4持平

“2023知乎发现大会”上,知乎创始人、董事长兼CEO周源和知乎合作人、CTO李大海共同宣布了知乎与面壁智能联合发布“知海图AI”中文大模型。 周源据介绍,知乎与面壁智能达成深度合作,共同开发中文大模型产品并推进应用落地。目前,知…

AUTOSAR存储服务之FEE换页策略介绍

概述 如下图是AUTOSAR Memory Stack的架构图,对于Memory Stack的介绍请参考AUTOSAR MemoryStack详细介绍_钢琴上的汽车软件的博客-CSDN博客 随着现在MCU携带的内置flash空间越来越大,从成本节省以及方便使用等方面考虑,在产品设计和开发过程中常用Flash EEPROM Emulation技…

CTFHub | eval执行

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。 0x01 题目描述…

手推广告论文(二)Wide Deep 推荐系统算法Wide Deep Learning for Recommender Systems

Wide & Deep Learning for Recommender Systems 论文地址https://arxiv.org/pdf/1606.07792.pdf 摘要 广义线性模型结合非线性特征转换,在处理具有大规模稀疏输入的回归和分类问题中已被广泛应用。通过一系列交叉积特征转换来记忆特征交互既有效又具有解释性…

【分布式事务 本地部署Seata服务】分布式事务框架Seata本地部署详细讲解

前言 这篇文章我会从0到1详细搭建分布式事务框架seata的使用,那么我们首先要先了解一下什么是分布式事务? 本篇文章是本地启动seata服务并且注册到nacos中,在SpringCloud中整合seata框架请转移下方连接 点我跳转SpringCloud整合seata教程&…

VMware ESXi 8.0U1 Unlocker OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)

发布 ESXi 8.0U1 集成驱动版,在个人电脑上运行企业级工作负载 请访问原文链接:https://sysin.org/blog/vmware-esxi-8-u1-sysin/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 2023-04-18, VMware vSp…

【真北直播笔记】董越:简明DevOps学习地图

缘起 真北敏捷社区的宗旨是:求知、连接。求知就是学习,家里没矿的话,学习是一个人最重要的动力之源。连接就是把人拉在一起,我们相信人与人的互动会带来美好的变化。今天的直播是把大家拉在一起学习,就是求知、连接。 …

【万人推荐】黑客成长技术清单

最近两天,在reddit安全板块和Twitter上有个GitHub项目很火,叫“Awesome Hacking”。 “Awesome Hacking”在reddit上有超过四百个赞,但管理员后来认为不适合该板块(Awesome类项目没有新的内容),给了“rejec…

十大排序算法之插入排序、希尔排序、选择排序

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【数据结构初阶(C实现)】 本篇主要讲解八大排序算法中的三种排序,分别是:插入排序、希尔排…

家用洗地机有什么优缺点?实用的洗地机分享

随着科技的不断发展,家庭清洁设备也在不断更新换代。现在市场上最常见的家用清洁设备包括洗地机、扫地机器人和吸尘器。这些设备各有优缺点,但在清洁效果、清洁范围和清洁方式等方面存在差异。洗地机是一种专业的清洁设备,它能够深度清洁地面…

SpringCloud之Gateway组件简介

网关的理解 网关类似于海关或者大门,出入都需要经过这个网关。别人不经过这个网关,永远也看不到里面的东西。可以在网关进行条件过滤,比如大门只有对应的钥匙才能入内。网关和大门一样,永远暴露在最外面 不使用网关 前端需要记住每…