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

kafka 单机部署指南(KRaft 版本)

目录

    • 环境准备
    • JDK安装
      • 下载jdk
      • jdk安装
    • kafka 部署
      • kafka 下载
      • kafka 版本号结构解析
      • kafka 安装
        • 下载和解压安装包
        • 配置 KRaft 模式
        • 格式化存储目录
        • 启动kafka
        • Kafka 配置为 systemd 服务
    • 注意事项
      • 调整 JVM 内存参数

Kafka KRaft 版本(即 Kafka 3.0 及更高版本)使用 KRaft 模式(Kafka Raft 协议)替代 ZooKeeper 进行集群管理,简化了部署流程。以下是在 Linux 系统上部署 Kafka KRaft 的详细步骤

环境准备

主机:Centos7
IP: 192.168.37.10

JDK安装

下载jdk

https://www.oracle.com/java/technologies/downloads/?er=221886#java21

jdk安装

  1. 解压下载的文件到指定目录
tar xvf jdk-21_linux-x64_bin.tar.gz -C /usr/local/
  1. 设置环境变量 (以 Linux/macOS 为例)
    vim /etc/profile
export JAVA_HOME=/usr/local/jdk-21.0.8
export PATH=$JAVA_HOME/bin:$PATH
  1. 刷新环境变量
source /etc/profile
  1. 验证安装
[root@test-10 bin]# java --version
java 21.0.8 2025-07-15 LTS
Java(TM) SE Runtime Environment (build 21.0.8+12-LTS-250)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.8+12-LTS-250, mixed mode, sharing)

kafka 部署

kafka 下载

地址:https://archive.apache.org/dist/kafka/
在这里插入图片描述
这里展示了历史的kafka各个版本。

本次我们下载 kafka_2.13-3.7.0.tgz 这个版本
https://archive.apache.org/dist/kafka/3.7.0/kafka_2.13-3.7.0.tgz

kafka 版本号结构解析

kafka_<SCALA_VERSION>-<KAFKA_VERSION>.tgz

Kafka 是用 Scala 和 Java 开发的,因此需要特定版本的 Scala 编译。版本号中的 2.13 表示该 Kafka 版本是用 Scala 2.13.x 编译的
3.7.0 是 Kafka 自身的版本号,采用 MAJOR.MINOR.PATCH 格式

kafka 安装

下载和解压安装包
mkdir -p /data/middleware
tar xvf kafka_2.13-3.7.0.tgz -C /data/middleware/
配置 KRaft 模式

编辑 config/kraft/server.properties 文件:

# 配置监听地址
log.dirs=/data/middleware/kafka_2.13-3.7.0/data
controller.quorum.voters=1@192.168.37.10:9093
advertised.listeners=PLAINTEXT://192.168.37.10:9092
格式化存储目录

Kafka KRaft 模式需要生成一个集群 ID 并配置相关参数:

[root@test-10 kafka_2.13-3.7.0]# ./bin/kafka-storage.sh random-uuid
BJODTrqBTbCBnwSG2VszJg

将生成的 UUID 记录下来, 使用生成的集群 ID 格式化存储目录:
./bin/kafka-storage.sh format -t <YOUR_CLUSTER_ID> -c config/kraft/server.properties

[root@test-10 kafka_2.13-3.7.0]# ./bin/kafka-storage.sh format -t  BJODTrqBTbCBnwSG2VszJg  -c config/kraft/server.properties
metaPropertiesEnsemble=MetaPropertiesEnsemble(metadataLogDir=Optional.empty, dirs={/data/middleware/kafka_2.13-3.7.0/data: EMPTY})
Formatting /data/middleware/kafka_2.13-3.7.0/data with metadata.version 3.7-IV4.# 执行后,data目录自动创建,并生成了两个文件。
[root@test-10 kafka_2.13-3.7.0]# ls data/
bootstrap.checkpoint  meta.properties
[root@test-10 kafka_2.13-3.7.0]# cat data/meta.properties 
#
#Fri Jul 18 11:25:00 CST 2025
cluster.id=BJODTrqBTbCBnwSG2VszJg
directory.id=YE6-pLr4UPcqstWaKaZJFw
node.id=1
version=1
启动kafka

前台启动(方便调试)

./bin/kafka-server-start.sh config/kraft/server.properties

后台启动

./bin/kafka-server-start.sh -daemon config/kraft/server.properties
Kafka 配置为 systemd 服务
[root@test-10 logs]# systemctl cat kafka 
# /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka Server (KRaft Mode)
Documentation=https://kafka.apache.org/documentation/
Requires=network.target
After=network.target[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk-21.0.8" 
ExecStart=/data/middleware/kafka_2.13-3.7.0/bin/kafka-server-start.sh -daemon  /data/middleware/kafka_2.13-3.7.0/config/kraft/server.properties
ExecStop=/data/middleware/kafka_2.13-3.7.0/bin/kafka-server-stop.sh
Restart=on-failure
RestartSec=5
LimitNOFILE=100000[Install]
WantedBy=multi-user.target

重新加载 systemd 并启动服务

sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka  # 设置开机自启

注意事项

调整 JVM 内存参数

可以在Service文件中增加

Environment=“KAFKA_HEAP_OPTS=-Xmx4G -Xms4G”

不覆盖修改,则启动的JVM参数采用bin/kafka-server-start.sh 默认
在这里插入图片描述

http://www.xdnf.cn/news/15607.html

相关文章:

  • 代码训练营DAY35 第九章 动态规划part03
  • cocosCreator2.4 Android 输入法遮挡
  • 车载监控录像系统:智能安全驾驶的守护者
  • AI编程工具 Cursor 和 Kiro 哪个的Claude更好用!
  • 如何使用Python将HTML格式的文本转换为Markdown格式?
  • Java基础篇
  • Altera Quartus:编译完成后自动生成pof文件
  • 20250718-6-Kubernetes 调度-Pod对象:环境变量,初始容器,静态_笔记
  • VR平台应该具备哪些功能?怎样选择VR平台?
  • 【playwright篇】教程(十六)[macOS+playwright相关问题]
  • 填坑 | React Context原理
  • AndroidX中ComponentActivity与原生 Activity 的区别
  • STM32+w5500+TcpClient学习笔记
  • JAVA中StringBuilder类,StringJoiner类构造函数方法简单介绍
  • [2025CVPR-目标检测方向] CorrBEV:多视图3D物体检测
  • 基于 HT 的 3D 可视化智慧矿山开发实现
  • 短视频矩阵系统哪家好?全面解析与推荐
  • 无人机传感器模组运行与技术难点分析
  • 嵌入式数据结构之顺序表总结
  • 自学力扣:最长连续序列
  • 小结:Spring MVC 的 XML 的经典配置方式
  • 【每日算法】专题十三_队列 + 宽搜(bfs)
  • 详解Linux(Ubuntu/RedHat/CentOS)及国产服务器统一加域管理方案
  • 一款实用的.NET Core加密解密工具类库
  • 纯前端html实现图片坐标与尺寸(XY坐标及宽高)获取
  • 贴吧项目总结二
  • 神经网络常见激活函数 15-B-SiLU 函数
  • 如何在银河麒麟桌面系统中启用 sudo 密码的星号反馈
  • 数据结构排序算法总结(C语言实现)
  • Planning Agent:基于大模型的动态规划与ReAct机制,实现复杂问题自适应执行求解