mac pro m1:搭建zookeeper集群并设置开机自启

news2024/9/24 21:21:41

0. 引言

之前我们讲解过搭建zookeeper单节点,但在实际生产中,为了保证服务高可用,通常我们是采用集群模式。所以本次我们来实操集群模式的搭建

1. zk集群模式

zk可以作为注册中心和配置中心,常用在微服务各类组件的多节点服务治理场景。而单节点的zk,容易出现故障时无备用节点的问题。

zk的集群模式是主从模式,主节点负责写入数据,从节点负责读取数据,从节点数据从主节点同步。各节点之间通过2888端口进行数据通信。

集群角色
既然是主从模式,那么其角色自然就有主(Leader)、从(Follower)两个角色,除此之外,还有一个观察者角色

角色说明
Leader 主节点为客户端提供读写服务,并且负责选主投票
Follower 从节点为客户端提供读服务,并且参与选主投票
Observer 观察者为客户端提供读服务,不参与选主投票

2. 搭建

0、因为zookeeper是基于java开发的,所以要先安装java环境,之前已经讲解过,这里不再单独说明

1、下载zookeeper安装包:zookeeper安装包下载地址

这里我选择了3.8.0版本

在这里插入图片描述

2、解压安装包,这里我将zk压缩包上传到了虚拟机/data目录下

cd /data
tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz

3、在zk安装目录下,创建tmp目录,并创建myid文件,声明集群节点id,第一个节点,我们声明文件内容为1

cd /data/apache-zookeeper-3.8.0-bin
mkdir tmp
vim tmp/myid
# 文本内容
1

4、修改zk配置文件,重命名zoo_sample.cfgzoo.cfg ,使其生效

cp conf/zoo_sample.cfg conf/zoo.cfg

5、修改配置文件中内容

vim conf/zoo.cfg

内容为:

# 修改数据目录为刚刚创建的tmp目录
dataDir=/data/apache-zookeeper-3.8.0-bin/tmp
# 添加集群节点,其中2888是节点通信端口,3888是节点选主端口
server.1=192.168.244.42:2888:3888
server.2=192.168.244.43:2888:3888
server.3=192.168.244.44:2888:3888

在这里插入图片描述

6、将zookeeper安装目录文件复制到其他2个zk节点

scp -r /data/apache-zookeeper-3.8.0-bin root@192.168.244.43:/data/
scp -r /data/apache-zookeeper-3.8.0-bin root@192.168.244.44:/data/

7、修改另外两个节点的myid内容,分别为2,3,注意与上面第5步的内容保持一致

8、开启zk相关端口,如果没有开启防火墙,则可省略这步

firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=2888/tcp --permanent
firewall-cmd --add-port=3888/tcp --permanent
firewall-cmd --reload
# 查询开放端口
netstat -anp

9、启动3个节点的zk

/data/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start

在这里插入图片描述

10、查看节点集群状态

 /data/apache-zookeeper-3.8.0-bin/bin/zkServer.sh status

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以看到zk集群启动成功,通过查询状态发现是2个follower节点,1个leader节点

所以实际上zk的集群模式,是主从模式,而我们这里是1主双从

2. 设置开机自启

1、编写启动脚本

cd /etc/init.d
vim zookeeper

内容:

#!bin/bash
#chkconfig:2345 54 26
#processname:zookeeper
#description:zk server
prog=/data/apache-zookeeper-3.8.0-bin/bin/zkServer.sh
start(){                                
        $prog start 
        echo "zookeeper启动"
}
stop(){                                
        $prog stop 
        echo "zookeeper关闭"
}
status(){
        $prog status
}
restart(){              
        stop
        start
}
case "$1" in        
"start")
        start      
        ;;
"stop")            
        stop
        ;;
"status")
        status
        ;;
"restart")            
        restart
        ;;
*)      
        echo "支持指令:$0 start|stop|restart|status"
        ;;
esac

其中

chkconfig:2345 54 26 用于设置开机自启时的运行级别、启动优先级、关闭优先级

2、给脚本赋权

chmod +x /etc/init.d/zookeeper

3、还需要配置JAVA路径,否则执行会报错Error: JAVA_HOME is not set and java could not be found in PATH

在zk安装目录的bin目录下,修改zkEnv.sh,添加java路径说明

vim /data/apache-zookeeper-3.8.0-bin/bin/zkEnv.sh
# 内容
JAVA_HOME="/var/local/zulu8.58.0.13-ca-jdk8.0.312-linux_aarch64"

在这里插入图片描述
4、执行脚本,验证一下

service zookeeper status
service zookeeper stop
service zookeeper start

在这里插入图片描述

5、添加到开机自启列表

# 添加开机自启
chkconfig --add zookeeper
# 状态设置为启动
chkconfig zookeeper on

6、重启虚拟机,查看zookeeper状态,发现自动启动了

在这里插入图片描述

7、在其他2个节点执行同样的自启设置

如上,我们的zk集群安装就完成了!

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

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

相关文章

Tomcat优化及部署

目录 一、Tomcat概述 二、Tomcat核心组件 1.Web容器 2.servlet容器 3.JSP容器 三、Tomcat的功能组件 1.connector 2.container 3.service 四、Tomcat部署 1.关闭防火墙和安全机制 2.将安装 Tomcat 所需软件包传到/opt目录下 3.安装JDK 4.设置JDK环境变量 5.编写j…

链路性能测试中参数多样性方法分享

目录 业务无关量 随机数字 线程安全随机 随机字符串 业务相关量 随机相关量 上游接口获取 上游接口造数据 提前造数据 总结: 下面分享几种我工作中常用到的增加参数多样性的方法。 业务无关量 这个是最常用到的,当部分的接口参数对接下来的用…

机器人开发--EKF扩展卡尔曼滤波介绍

机器人开发--EKF卡尔曼滤波介绍 1 介绍1.1 概述KF (Kalman Filter)EKF (Extended Kalman Filter)UKF (Unscented Kalman Filter) 1.2 发展历史1.3 卡尔曼演化分支1.4 应用1.5 特点1.6 姿态估计问题 from 南叔先生1.7 EKF、PF、UKF 对比1.8 EKF 递归框架 2 理解機器人學&#xf…

使用Matplotlib画三维图

使用matplotlib画3D图: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D# 创建X和Y的网格点 x np.linspace(-5, 5, 100) y np.linspace(-5, 5, 100) X, Y np.meshgrid(x, y)# 创建Z的网格点(这里使用一…

nginx 配置m3u8播放视频

第一步nginx配置: 参考 csdn - CircleMouse Nginx配置搭建m3u8格式的视频播放服务 user www www; worker_processes auto; error_log /www/wwwlogs/nginx_error.log crit; pid /www/server/nginx/logs/nginx.pid; worker_rlimit_nofile 51200;stream {l…

提高情商的训练方法

在当今社会,情商已经成为了一个越来越受到重视的概念。情商指的是一个人在情感方面的智力水平,即情绪智商,包括了自我意识、自我管理、社交意识和关系管理等多个方面。而提高情商并非是天生的天赋,而是可以通过学习和实践获得的技…

自然语言处理从入门到应用——预训练模型总览:词嵌入的两大范式

分类目录:《自然语言处理从入门到应用》总目录 相关文章: 预训练模型总览:从宏观视角了解预训练模型 预训练模型总览:词嵌入的两大范式 预训练模型总览:两大任务类型 预训练模型总览:预训练模型的拓展 …

【论文解读系列】MLLM研究综述

A Survey on Multimodal Large Language Models 1 中国科大科技学院、认知智能国家重点实验室 2 腾讯优图实验室 MLLM目录 0. 摘要1. 引言2. 总览3. 方法3.1 多模态指令调谐3.1.1 引言3.1.2 前言(Preliminaries)3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2 多模态…

深入理解 Golang: 网络编程

Go 中的 Epoll 关于计算机网络分层与 TCP 通信过程过程此处不再赘述。 考虑到 TCP 通信过程中各种复杂操作,包括三次握手,四次挥手等,多数操作系统都提供了 Socket 作为 TCP 网络连接的抽象。Linux -> Internet domain socket -> SOC…

layui中文、以及图标乱码解决方案

最终解决方案…手动对js文件中的中文,用unicode进行编码

修改 ChatGLM2-6B 自我认知的 Lora 微调教程

修改 ChatGLM2-6B 自我认知的 Lora 微调教程 0. 背景1. 部署微调项目2. 数据集说明3. 模型监督微调(Lora)4. 模型效果测试5. 导出微调模型6. 调用导出的模型 0. 背景 现在开始学习微调,主要学习 Lora 微调。 这次尝试了修改 ChatGLM2-6B 自我认知,文章…

2023.7.2-【for语言】:输入一个整数,并输入该整数对应个数的整数,求他们的和与平均值

程序&#xff1a; int a;int b0;int c;int sum0;double ave;printf("请输入待求整数的个数&#xff1a;");scanf("%d",&a);for (b 1; b<a; b){printf("整数%d&#xff1a;", b);scanf("%d", &c);sum c;}printf("以上…

vite中的env环境变量

一、vite中使用env环境变量基本介绍 Vite 是一种现代化的前端构建工具&#xff0c;旨在提供快速的开发和构建体验。在 Vite 中&#xff0c;env 环境变量是一种用于在项目中设置和访问全局变量的机制。通过 env 变量&#xff0c;可以在不同环境下配置不同的参数&#xff0c;实现…

时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解 部分源码 %---------------------

Java基础---为什么不能用浮点数表示金额

目录 缘由 十进制转二进制 不是所有数都能用二进制表示 IEEE 754 避免精度丢失 缘由 因为不是所有的小数都能用二进制表示&#xff0c;所以&#xff0c;为了解决这个问题&#xff0c;IEEE提出了一种使用近似值表示小数的方式&#xff0c;并且引入了精度的概念这就是我们所…

Docker部署.Net7.0

1、新建项目 勾选启用Docker,会自动生成Dockerfile文件 2、生成镜像 打开PowerShell 进入项目解决方案目录路径 把项目打包成镜像 //镜像名称net7. 注意镜像名称后面的空格和点符号必须有docker build -t net7.0 .打包完成后可以看到项目的镜像 3、创建容器并启动 //…

C++文件操作 - 写操作----简单示例

C文件操作 - 写操作 一、什么是文件 内存中存放的数据在计算机关机后就会消失。要长久保存数据&#xff0c;就要使用硬盘、光盘、U盘等设备。为了便于数据的管理和检索&#xff0c;引入了“文件”的概念。 一篇文章、一段视频、一个可执行程序&#xff0c;都可以被保存为一个文…

BeanShell:多线程环境下Interpreter解释器的优化使用

BeanShell是用 Java 编写的一个小型、免费、可嵌入的 Java 代码的脚本解释器。 BeanShell动态执行标准Java语法&#xff0c;并使用通用语法对其进行扩展 脚本编写便利性&#xff0c;适用于 Java 的轻量级脚本。本文说明在并发环境下对BeanShell更加优化的使用方式。 简单示例 …

geoserver加载arcgis server瓦片地图显示异常问题处理

1.全能地图下载的瓦片conf.xml格式有问题首先要修改格式&#xff0c;conf.cdi文件也需要修改格式&#xff0c;修改为UTF-8或者UTF-8无BOM编码(不同的notepadd显示不同) 2. 下载的conf.xml坐标系默认从最小级别开始&#xff0c;一定要把前几级也补全&#xff0c;从0级开始 <L…

diffusion model

(正课)Diffusion Model 原理剖析 (1_4) (optional)_哔哩哔哩_bilibili(正课)Diffusion Model 原理剖析 (1_4) (optional)是【授权】李宏毅2023春机器学习课程的第42集视频&#xff0c;该合集共计64集&#xff0c;视频收藏或关注UP主&#xff0c;及时了解更多相关视频内容。http…