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

1.部署zookeeper集群:2181

官网: Apache ZooKeeper

Zookeeper集群的工作是超过半数才能对外提供服务,成员数量一般为奇数台

环境:

操作系统: centos7

软件版本: zookeeper-3.4.12.tar.gz

防火墙:全关

三台服务器改主机名:

hostnamectl set-hostname kafka-1

hostnamectl set-hostname kafka-2

hostnamectl set-hostname kafka-3

三台服务器互相解析:

vim /etc/hosts

192.168.148.141 kafka-1

192.168.148.142 kafka-2

192.168.148.143 kafka-3

三台服务器同时操作:

1.布署java环境

yum -y install wget

wget https://d6.injdk.cn/oraclejdk/8/jdk-8u341-linux-x64.rpm

yum localinstall jdk-8u341-linux-x64.rpm -y

2.安装zookeeper

tar xf zookeeper-3.4.12.tar.gz -C /usr/local/

ln -s /usr/local/zookeeper-3.4.12/ /usr/local/zookeeper

3.修改配置文件

#cd /usr/local/zookeeper/conf

#cp zoo_sample.cfg zoo.cfg

#egrep -v "^$|^#" zoo.cfg

tickTime=2000 #Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔

initLimit=10 #这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,

#而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。

#当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,

#那么表明这个客户端连接失败。总的时间长度就是 10*2=20 秒

syncLimit=5 #这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,

#总的时间长度就是5*2=10秒

dataDir=/data/zookeeper/data #快照日志的存储路径

dataLogDir=/data/zookeeper/datalog #事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录

#这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多

clientPort=2181 #这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求

server.1=192.168.148.141:2888:3888

server.2=192.168.148.142:2888:3888

server.3=192.168.148.143:2888:3888

#server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到数据目录下面myid文件里

#192.168.148.141为IP地址,第一个端口是leader和follower之间的通信端口,默认是2888,服务启动后,只有leader会监听这个端口

#第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888

4.创建数据目录及服务器id

(每台机器的id不一样)

mkdir /data/zookeeper/data{,log} -p

echo 1 > /data/zookeeper/data/myid

5.在所有机器上启动服务并查看

# /usr/local/zookeeper/bin/zkServer.sh start #启动服务

# /usr/local/zookeeper/bin/zkServer.sh status #查看状态

zk集群自动分配一个leader,多个follower,主一般是相应客户端的读写请求,而从主同步数据,当主挂掉之后就会从follower里投票选举一个leader出来

# netstat -tanp |grep -E "2888|3888"

# jps #查看运行的进程号

9969 QuorumPeerMain

13767 Jps

6.几点重要说明

1)、myid文件和server.myid  在快照目录下存放的标识本台服务器的文件,他是整个zk集群用来发现彼此的一个重要标识。

2)、zoo.cfg 文件是zookeeper配置文件在conf目录里。

3)、log4j.properties文件是zk的日志输出文件, 在conf目录里. 用java写的程序基本上有个共同点:日志都用log4j来进行管理。

4)、zkEnv.sh和zkServer.sh文件

zkServer.sh 主管理程序文件

zkEnv.sh 是主要配置zookeeper集群启动时配置环境变量的文件

5)、还有一个需要注意: zookeeper不会主动的清除旧的快照和日志文件,这个是操作者的责任。

清理方法:

一. 脚本+计划任务清理

二. 使用bin/zkCleanup.sh这个脚本清理,具体使用方法找官方文档

三. 从3.4.0开始,zookeeper提供了自动清理snapshot和事务日志的功能,通过在zoo.cfg中配置两个参数实现:

autopurge.purgeInterval  清理频率,单位是小时,默认是0,表示不开启自动清理功能

autopurge.snapRetainCount 需要保留的文件数目, 默认是保留3个

7.zookeeper端口:

连接客户端(kafka):2181

leader和folower通信:2888

选举新的leader:3888

http://www.dtcms.com/a/38419.html

相关文章:

  • vue自定义指令千分位
  • ssh工具
  • ROS的action通信——实现阶乘运算(一)
  • 数据安全_笔记系列05:数据合规与隐私保护(GDPR、CCPA、中国《数据安全法》)深度解析
  • vite react 项目打包报错处理
  • 矩阵碰一碰发视频的后端源码技术,支持OEM
  • 使用 Containerd 通过 HTTP 协议拉取 Harbor 私有镜像仓库的镜像
  • 使用内置命令查看笔记本电池健康状态
  • Uppy - 免费开源、功能强大的新一代 web 文件上传组件,支持集成到 Vue 项目
  • Modelfile配置说明
  • AI绘画软件Stable Diffusion详解教程(2):Windows系统本地化部署操作方法(专业版)
  • ui设计公司兰亭妙微分享:科研单位UI界面设计
  • c#笔记-基础知识
  • muduo源码阅读:linux timefd定时器
  • 学习Flask:Day 1:基础搭建
  • AI大模型(四)基于Deepseek本地部署实现模型定制与调教
  • Python图像处理入门:如何打开图像文件及常见格式
  • MySQL知识
  • SpringBoot整合sharding-jdbc 实现分库分表操作
  • 实操系列:我用deepseek写sql
  • C++ | 面向对象 | 类
  • 六十天前端强化训练之第二天CSS选择器与盒模型深度解析
  • DeepSeek技术提升,Linux本地部署全攻略
  • 【面试手撕】多线程/并发编程
  • 在 compare-form.vue 中添加 compareDate 隐藏字段,并在提交时自动填入当前时间
  • [OS] 基于RR(Round Robin)算法的CPU调度
  • ubuntu20.04 突破文件数限制
  • 前言:什么是大模型微调
  • 企业级大模型应用的Java-Python异构融合架构实践
  • 本地部署大模型: LM Studio、Open WebUI 与 Chatbox 全面对比以及选型指南