当前位置: 首页 > news >正文

【zookeeper】集群配置

zookeeper

数据结构

  • zookeeper数据模型结构,就和Linux的文件系统类型,看起来是一颗树,每个节点称为一个znode.
  • 每一个Znode默认的存储1MB的数据,每个Znode都有唯一标识,可以通过命令显示节点的信息
  • 每当节点有数据变化,节点的版本号都会累加
  • 删除或者修改过时的节点,版本号不匹配的话就会报错
  • 每个zk存储的数量不易过大,一般为几KB
  • 每一个znode可以设置acl,进行用户权限的访问,不同的节点数据

特点

  • 暂时的\临时(Ephemera):当客户端和服务端断开连接后,所创建的Znode(节点)会自动删除
  • 持久(Persistent):当客户端和服务端断开连接的时候,所创建的Znode不会自动删除

zookeeper和Redis一样,也是c/s结构(分成客户端和服务端)

监听器

在上面我们知道了zookeeper的数据结构了,但是zookeeper才能做那么多的事情

常见的监听场景有以下两项:

  • 简历Znode节点的数据变化
  • 监听子节点的增减变化/app1节点以及子节点是否增减

在这里插入图片描述

安装zookeeper集群

环境准备
IP地址主机名myid
192.168.116.136master1
192.168.116.137node12
192.168.116.138node23
  1. 更改主机名
# 在第一个虚拟机
hostnamectl set-hostname master
# 在第二个虚拟机
hostnamectl set-hostname node1
# 在第三个虚拟机
hostnamectl set-hostname node2
  1. 映射
vi /etc/hosts192.168.116.136 master
192.168.116.137 node1
192.168.116.138 node2
  1. 修改网络配置(对每一个机器都进行修改,避免IP地址变化)
vim /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO="static"IPADDR=192.168.116.136
NETMASK=255.255.255.0
GATEWAY=192.168.116.2
DNS1=8.8.8.8
DNS2=114.114.114.114

1.安装jdk

上传jdk 的安装包到系统中

  1. 解压jdk安装包
tar -zxvf jdk-8u202-Linuxx64.tar.gz 
  1. 更改解压后的文件名
mv jdk1.8.0_202 jdk
  1. 更改环境变量
vi /etc/profile# 在文件的最后加入
export JAVA_HOME=/software/jdk
export PATH=$PATH:$JAVA_HOME/bin
  1. 重新加载环境变量
source /etc/proflie
  1. jdk是否配置成功
java -version

配置zookeeper

  1. 安转包上传到服务器
  2. 解压安装包
tar -xvf apache-zookeeper-3.5.6-bin.tar.gz 
  1. 创建文件夹,用于存储zk数据
cd /software/zookeeper/
mkdir zkdata
  1. 创建myid文件
cd zkdata
echo '1' > myid
  1. 修改配置文件
vim software/zookeeper/conf/zoo.cfgdataDir=/software/zookeeper/zkdata/server.1=192.168.116.136:2888:3888
server.2=192.168.116.137:2888:3888
server.3=192.168.116.138:2888:3888
  1. 配置环境变量
vim /etc/profileexport ZK_HOME=/software/zookeeper
export PATH=$PATH:$ZK_HOME/bin
  1. 分发文件
# 生成公钥(一直回车确认就可以)
ssh-keygen# 将免密配置到各个节点
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2# 分发环境变量
scp /etc/profile node1:/etc/profile
scp /etc/profile node2:/etc/profile# 向node2发送配置程序
scp -r /software root@node1:$PWD
# 向node3发送配置程序
scp -r /software root@node2:$PWD
  1. 开始在每个虚拟机都启动zookeeper
# 启动
zkServer.sh start
# 查看状态
zkServer.sh statusmaster:
ZooKeeper JMX enabled by default
Using config: /software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: followernode1:
ZooKeeper JMX enabled by default
Using config: /software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leadernode2:
zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

战斗结束,个人笔记,有错误,望指正,在此谢过

相关文章:

【zookeeper】集群配置

zookeeper 数据结构 zookeeper数据模型结构,就和Linux的文件系统类型,看起来是一颗树,每个节点称为一个znode.每一个Znode默认的存储1MB的数据,每个Znode都有唯一标识,可以通过命令显示节点的信息每当节点有数据变化…...

YOLO11 目标检测 | 导出ONNX模型 | ONNX模型推理

本文分享YOLO11中,从xxx.pt权重文件转为.onnx文件,然后使用.onnx文件,进行目标检测任务的模型推理。 用ONNX模型推理,便于算法到开发板或芯片的部署。 备注:本文是使用Python,编写ONNX模型推理代码的 目…...

PostgreSQL DBA月度检查列表

为了确保数据库系统能够稳定高效运行,DBA 需要定期对数据库进行检查和维护,这是一项非常具有挑战性的工作。 本文给大家推荐一个 PostgreSQL DBA 月度性能检查列表,遵循以下指导原则可以帮助我们实现一个高可用、高性能、低成本、可扩展的数…...

驱动开发系列12 - Linux 编译内核模块的Makefile解释

一:内核模块Makefile #这一行定义了要编译的内核模块目标文件。obj-m表示目标模块对象文件(.o文件), #并指定了两个模块源文件:helloworld-params.c 和 helloworld.c。最终会生成这 #这两个.c文件的.o对象文件。 obj-m := helloworld-params.o helloworld.o#这行定义了内核…...

用js+css实现圆环型的进度条——js+css基础积累

如果用jscss实现圆环型的进度条&#xff1a; 直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><met…...

TDengine 与北微传感达成合作,解决传统数据库性能瓶颈

在当今物联网&#xff08;IoT&#xff09;快速发展的背景下&#xff0c;传感器技术已成为各个行业数字化转型的关键组成部分。随着设备数量的激增和数据生成速度的加快&#xff0c;如何高效地管理和分析这些数据&#xff0c;成为企业实现智能化运营的重要挑战。尤其是在惯性传感…...

通过Python爬虫获取商品销量数据,轻松掌握市场动态

为什么选择Python爬虫&#xff1f; 简洁易用&#xff1a;Python语言具有简洁的语法和丰富的库&#xff0c;使得编写爬虫变得简单高效。强大的库支持&#xff1a;Python拥有强大的爬虫框架&#xff08;如Scrapy、BeautifulSoup、Requests等&#xff09;&#xff0c;可以快速实现…...

学习虚幻C++开发日志——TSet

TSet 官方文档&#xff1a;虚幻引擎中的Set容器 | 虚幻引擎 5.5 文档 | Epic Developer Community (epicgames.com) TSet 是通过对元素求值的可覆盖函数&#xff0c;使用数据值本身作为键&#xff0c;而不是将数据值与独立的键相关联。 默认情况下&#xff0c;TSet 不支持重…...

面向对象进阶(下)(JAVA笔记第二十二期)

p.s.这是萌新自己自学总结的笔记&#xff0c;如果想学习得更透彻的话还是请去看大佬的讲解 目录 抽象方法和抽象类抽象方法定义格式抽象类定义格式抽象方法和抽象类注意事项 接口接口的定义接口中成员变量的特点接口中没有构造方法接口中成员方法的特点在接口中定义具有方法体…...

通信协议——UART

目录 基础概念串行&并行串行的优缺点 单工&双工 UART基本概念时序图思考&#xff1a;接收方如何确定01和0011 基础概念 串行&并行 串行为8车道&#xff0c;并行为1车道 串行的优缺点 通行速度快浪费资源布线复杂线与线之间存在干扰 单工&双工 单工&#xf…...

最优阵列处理技术(七)-谱加权

阵列的加权技术等价于时间序列谱分析中的加窗或锐化技术。在加权过程中,需要考虑的是如何降低旁瓣并使主波束宽度的增长最小。 首先需要明确的是,在 u u u空间下的波束方向图为 B u ( u ) =...

Java | Leetcode Java题解之第486题预测赢家

题目&#xff1a; 题解&#xff1a; class Solution {public boolean PredictTheWinner(int[] nums) {int length nums.length;int[] dp new int[length];for (int i 0; i < length; i) {dp[i] nums[i];}for (int i length - 2; i > 0; i--) {for (int j i 1; j …...

leetcode动态规划(十五)-完全背包

题目 leetcode上没有纯完全背包题目&#xff0c;可以看卡码网上的题目 完全背包 思路 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09;&#xff…...

AI视听新体验!浙大阿里提出视频到音乐生成模型MuVi:可解决语义对齐和节奏同步问题

MuVi旨在解决视频到音乐生成(V2M)中的语义对齐和节奏同步问题。 MuVi通过专门设计的视觉适配器分析视频内容,以提取上下文 和时间相关的特征,这些特征用于生成与视频的情感、主题及其节奏和节拍相匹配的音乐。MuVi在音频质量和时间同步方面表现优于现有基线方法,并展示了其在风…...

对比两个el-table,差异数据突显标记

前言 在数据分析和数据处理的过程中&#xff0c;经常需要对比两个数据集&#xff0c;以便发现其中的差异和变化。本文将介绍如何使用 el-table 组件来对比两个数据集&#xff0c;并通过差异数据的突显标记&#xff0c;帮助用户更直观地理解数据的变化。 cell-style 属性 其实利…...

调研funasr时间戳返回时间坐标效果可用性

# 背景 : 分析funasr识别结果中每个中文字的时间戳偏差情况 1.评价指标: ①偏差公式: A=标注字的时间戳(帧长区间) B=识别字的时间戳(帧长区间) 偏差=(AB的区间并集-AB的区间交际) 偏差百分比=(AB的区间并集-AB的区间交际)/(A的帧长) def calculate_bias(la…...

Tomcat默认配置整理

Connector: 处理请求的具体配置 Tomcat的连接等待队列长度&#xff0c;默认是100 Tomcat的最大连接数&#xff0c;默认是8192 Tomcat的最小工作线程数&#xff0c;默认是10 Tomcat的最大线程数&#xff0c;默认是200 Tomcat的连接超时时间&#xff0c;默认是20s Server port…...

深入理解Rust中的指针:裸指针 智能指针

Rust是一种注重安全性的系统编程语言&#xff0c;它通过所有权、借用和生命周期等机制来保证内存安全。在Rust中&#xff0c;指针的使用是小心翼翼的&#xff0c;因为指针操作是导致内存错误的主要原因之一。然而&#xff0c;指针在处理底层数据和性能优化时又是必不可少的。本…...

物联网实训项目:绿色家居套件

1、基本介绍 绿色家居通过物联网技术将家中的各种设备连接到一起&#xff0c;提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。绿色家居提供全方位的信息交互功能&#xff0c;甚至为各种能源费…...

缓存雪崩是什么

背景 Redis的缓存雪崩是指在某一时间段内&#xff0c;大量缓存数据同时失效&#xff0c;导致大量请求直接打到数据库上&#xff0c;造成数据库压力激增&#xff0c;甚至可能导致数据库宕机。这种情况类似于雪崩效应&#xff0c;突然的大量请求涌入数据库&#xff0c;系统无法承…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

云原生周刊:k0s 成为 CNCF 沙箱项目

开源项目推荐 HAMi HAMi&#xff08;原名 k8s‑vGPU‑scheduler&#xff09;是一款 CNCF Sandbox 级别的开源 K8s 中间件&#xff0c;通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度&#xff0c;为容器提供统一接口&#xff0c;实现细粒度资源配额…...

Spring AOP代理对象生成原理

代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】&#xff0c;这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...