Kafka 4.0.0集群部署

Kafka 4.0.0集群部署

1.1 关闭防火墙和 selinux

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

关闭selinux

setenforce 0 #(临时生效)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #(永久生效)

1.2 检查是否已经安装OpenJDK

rpm -qa|grep jdk  #如果安装先卸载jdk

下载jdk:

官网:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html

选择jdk版本上传到服务器解压,这里我用的是jdk1.8.0版本

tar -xvf jdk-24.0.1-linux-x64.tar.gz
mv /usr/local/jdk-24.0.1 /usr/local

vim  /etc/profile

export JAVA_HOME=/usr/local//usr/local/jdk-24.0.1
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

java -version (检查一下jdk版本查看是否安装成功)

1.3 Kafka集群安装

1.3.1 下载安装包

Kafka官网下载:http://kafka.apache.org/downloads
或者wget,下载 https://dlcdn.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz

1.3.2 新建一个Kafka-cluster目录,将安装Kafka-cluster目录下

cd /usr/local
mkdir kafka-cluster

1.3.3 解压安装包,重命名

tar zxvf kafka_2.13-4.0.0.tgz
mv kafka_2.13-4.0.0 kafka

1.3.4 修改配置文件

cd /usr/local/kafka-cluster/kafka/config/
cp server.properties kraft-server.properties
vi kraft-server.properties

node.id=1节点修改内容如下:

node.id=1

controller.quorum.voters=1@192.168.1.151:9093,2@192.168.1.152:9093,3@192.168.1.153:9093
controller.quorum.bootstrap.servers=192.168.1.151:9093,192.168.1.152:9093,192.168.1.153:9093

listeners=PLAINTEXT://192.168.1.151:9092,CONTROLLER://192.168.1.151:9093
inter.broker.listener.name=PLAINTEXT

advertised.listeners=PLAINTEXT://192.168.1.151:9092,CONTROLLER://192.168.1.151:9093
controller.listener.names=CONTROLLER

log.dirs=/data/kafka-logs

1.3.5 其他节点配置

其他节点配置相同,除以下内容:

node.id=2  #唯一 (确定id值是唯一)
listeners=PLAINTEXT://192.168.1.152:9092,CONTROLLER://192.168.1.152:9093  #修改为本机地址

1.3.6 启动

cd /usr/local/kafka-cluster/kafka

在任意节点运行:

bin/kafka-storage.sh random-uuid

得到类似结果:

e3b24c36-7e24-4173-9732-bd92ad45b3ab
# 示例(node.id 为 1):
bin/kafka-storage.sh format \
  --cluster-id e3b24c36-7e24-4173-9732-bd92ad45b3ab \
  --config config/kraft-server.properties

cd /usr/local/kafka-cluster/kafka/bin
bin/kafka-server-start.sh config/server.properties
可以发现在窗口启动之后是一个阻塞进程,会阻塞当前窗口,我们可以重新打开一个窗口进行接下来的操作,或者在启动kafka的时候使用 -daemon 参数将它声明为守护进程后台运行。
bin/kafka-server-start.sh  -daemon config/server.properties

到这一步kafka已经是部署完成了

1.3.7 使用JMX监控Kafka

vim /usr/local/kafka-cluster/kafka/bin/kafka-server-start.sh
在这个字段加入export JMX_PORT="9999"

1.3.8 Kafka自启动设置

cd /lib/systemd/system/
vim kafka.service

添加一下内容:

[Unit]
Description=Apache Kafka Server (KRaft mode)
After=network.target

[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk"
ExecStart=/usr/local/kafka-cluster/kafka/bin/kafka-server-start.sh /usr/local/kafka-cluster/kafka/config/kraft-server.properties
ExecStop=/usr/local/kafka-cluster/kafka/bin/kafka-server-stop.sh
Restart=on-failure
User=root
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

保存退出,刷新一下

systemctl daemon-reload
systemctl start kafka
systemctl enable kafka
systemctl status kafka
<think>首先,用户的问题是:“我想手动部署Kafka 4.0.0 请问如何手动部署 Apache Kafka 4.0.0”。这是一个关于手动部署Apache Kafka 4.0.0的请求。 我需要参考提供的引用: - 引用[1]:提到本地部署kafka4.0,包括Docker形式和原生部署。它提供了下载链接:https://kafka.apache.org/downloads,并说下载kafka4.0。 - 引用[2]:Apache Kafka 4.0.0发布公告,强调它现在以KRaft模式运行,不需要ZooKeeper。 - 引用[3]:Kafka 4.0核心特性,再次确认默认运行在KRaft模式下,摆脱了ZooKeeper。 用户指定了“手动部署”,所以我应该忽略Docker部分,专注于原生部署。 系统级指令: - 所有行内数学表达式用$...$格式。但在这个上下文中,可能没有数学表达式,所以我可以忽略。 - 独立公式用$$...$$并单独成段。同样,可能不适用。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 引用的段落末尾添加引用标识,如[^1]。 - 回答结构清晰,帮助用户逐步解决问题,保证真实可靠。 用户可见层:回答结构清晰,逐步解决问题。 所以,我的回答应该: 1. 介绍手动部署Apache Kafka 4.0.0的步骤。 2. 基于引用,Kafka 4.0默认使用KRaft模式,不需要ZooKeeper,这简化了部署。 3. 提供清晰的步骤,包括下载、配置、启动等。 4. 结束时生成相关问题。 5. 使用中文。 步骤规划: - 先下载Kafka 4.0.0。 - 然后配置它。 - 启动Kafka服务。 - 可能包括验证部署。 从引用[1]:下载kafka4.0,链接是https://kafka.apache.org/downloads。 手动部署步骤: 1. 下载Kafka 4.0.0二进制文件。 2. 解压文件。 3. 配置Kafka使用KRaft模式(因为默认就是)。 4. 启动Kafka服务。 5. 测试部署。 确保回答可靠:我应该基于Kafka官方文档。引用[1]提到下载链接,引用[2]和[3]强调KRaft模式。 添加引用:在相关部分末尾添加[^1], [^2], [^3]。 最后,生成相关问题。 回答结构: - 开头:简要介绍手动部署Apache Kafka 4.0.0。 - 步骤:详细步骤。 - 结束:总结和生成相关问题。</think>### 手动部署 Apache Kafka 4.0.0 的步骤指南 Apache Kafka 4.0.0 是一个重大更新版本,默认以 **KRaft 模式**运行,不再依赖 Apache ZooKeeper,这简化了部署流程并降低了运维复杂性[^2][^3]。手动部署包括下载、配置和启动 Kafka 服务。以下是详细步骤,基于 Kafka 官方文档和最佳实践,确保真实可靠。整个过程在 Linux 或 macOS 环境下进行(Windows 类似,但需调整路径)。 #### 步骤 1: 下载 Kafka 4.0.0 二进制文件 - 访问 Apache Kafka 官方网站下载页面:https://kafka.apache.org/downloads。 - 选择 **Scala 2.13** 版本的 Kafka 4.0.0 二进制包(推荐,兼容性更好)。下载命令示例: ```bash wget https://downloads.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz ``` 或者手动从浏览器下载。此步骤确保获取官方发布包[^1]。 #### 步骤 2: 解压文件并准备环境 - 解压下载的压缩包到指定目录: ```bash tar -xzf kafka_2.13-4.0.0.tgz cd kafka_2.13-4.0.0 ``` - 确保系统已安装 Java(Kafka 依赖 Java 8 或更高版本)。检查 Java 版本: ```bash java -version ``` 如果未安装,请先安装 OpenJDK(例如,在 Ubuntu 上:`sudo apt install openjdk-11-jdk`)。 #### 步骤 3: 配置 Kafka 以 KRaft 模式运行 由于 Kafka 4.0.0 默认使用 KRaft 模式(无需 ZooKeeper),但需手动配置集群元数据。以下是关键配置文件: - 编辑 `config/kraft/server.properties` 文件(这是 KRaft 模式的默认配置文件): ```bash nano config/kraft/server.properties ``` 修改以下参数: - `node.id`: 设置一个唯一节点 ID(例如 `node.id=1`)。 - `controller.quorum.voters`: 指定控制节点列表(单机部署时,设置为自身)。例如: ```properties controller.quorum.voters=1@localhost:9093 ``` 其中 `1` 是节点 ID,`localhost` 是主机名,`9093` 是端口。 - `listeners`: 设置 Kafka 监听地址(例如 `listeners=PLAINTEXT://:9092,CONTROLLER://:9093`)。 - `log.dirs`: 设置日志存储目录(例如 `log.dirs=/tmp/kraft-logs`)。 完整配置示例(单机部署): ```properties node.id=1 controller.quorum.voters=1@localhost:9093 listeners=PLAINTEXT://:9092,CONTROLLER://:9093 advertised.listeners=PLAINTEXT://localhost:9092 log.dirs=/tmp/kraft-logs ``` 此配置使用本地主机,适合开发和测试环境[^2][^3]。 #### 步骤 4: 生成集群 UUID 并格式化存储 - Kafka KRaft 模式需要一个唯一集群 ID。生成 UUID 并初始化存储: ```bash ./bin/kafka-storage.sh random-uuid ``` 命令输出一个 UUID(例如 `3Z1b4eX5Rr6y7z8A9b0cD`)。然后,格式化日志目录: ```bash ./bin/kafka-storage.sh format -t <生成的UUID> -c ./config/kraft/server.properties ``` 例如: ```bash ./bin/kafka-storage.sh format -t 3Z1b4eX5Rr6y7z8A9b0cD -c ./config/kraft/server.properties ``` 这确保元数据正确初始化。 #### 步骤 5: 启动 Kafka 服务 - 在后台启动 Kafka 服务: ```bash ./bin/kafka-server-start.sh -daemon ./config/kraft/server.properties ``` 检查服务是否运行: ```bash jps | grep Kafka ``` 输出应显示 `Kafka` 进程。 #### 步骤 6: 测试部署 - 创建测试主题并发送/接收消息来验证: - 创建主题: ```bash ./bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 ``` - 启动生产者发送消息: ```bash ./bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092 ``` 输入一些消息(如 `Hello Kafka 4.0`)。 - 启动消费者接收消息: ```bash ./bin/kafka-console-consumer.sh --topic test-topic --bootstrap-server localhost:9092 --from-beginning ``` 如果成功输出消息,表示部署成功。 #### 步骤 7: 停止和清理 - 停止 Kafka 服务: ```bash ./bin/kafka-server-stop.sh ``` - 清理日志目录(可选): ```bash rm -rf /tmp/kraft-logs ``` ### 注意事项 - **KRaft 模式优势**:Kafka 4.0.0 的 KRaft 模式简化了架构,减少了 ZooKeeper 的运维负担,特别适合小规模部署[^3]。但生产环境建议使用多节点集群以提高可用性。 - **安全配置**:手动部署时,添加 SSL 或 SASL 认证(编辑 `server.properties` 中的 `security.protocol` 参数)。 - **性能优化**:根据硬件调整 `num.network.threads` 和 `num.io.threads` 参数。 - **官方文档**:参考 [Apache Kafka 官方文档](https://kafka.apache.org/documentation/) 获取更多细节[^1]。 手动部署 Apache Kafka 4.0.0 完成后,您将拥有一个稳定运行的分布式消息系统。整个过程约 10-15 分钟,取决于网络和系统性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavaGPT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值