CentOS 7 安装配置 kafka,并配置开机自启

写在前面:

❌ 你还在这样算排期吗?

撕日历、数周末、翻放假通知......

项目Deadline总算错?调休上班日漏算?

"明明该完成了,怎么又撞上节假日?"

✨ 现在,一切交给「 微信小程序:排期计算器 」!

引言

本文将详细介绍如何在Linux环境下安装并配置Apache Kafka。Kafka是一个分布式流处理平台,广泛应用于消息系统、指标收集、日志聚合等场景。为了顺利运行Kafka,首先需要确保已安装JDK。

一、下载Kafka

访问Kafka官网,根据需求选择合适的版本进行下载。

二、安装Kafka

解压安装包

假设安装目录为/opt/kafka/,执行以下命令解压下载的Kafka压缩包:

bash 复制代码
tar -zvxf kafka_2.11-2.1.0.tgz -C /opt/kafka/

配置修改

编辑Kafka的配置文件server.properties

bash 复制代码
vim /opt/kafka/kafka_2.11-2.1.0/config/server.properties

修改如下内容,确保使用正确的IP地址:

properties 复制代码
listeners=PLAINTEXT://<your-ip>:9092

注:请将<your-ip>替换为本机的实际IP地址。

三、验证安装

启动Zookeeper

进入Kafka安装目录,并启动单节点Zookeeper实例:

bash 复制代码
cd /opt/kafka/kafka_2.11-2.1.0
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

启动Kafka服务

接下来,启动Kafka服务:

bash 复制代码
bin/kafka-server-start.sh config/server.properties

创建Topic

创建一个具有单一副本和分区的名为test的topic:

bash 复制代码
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

发送和接收消息

使用Kafka自带的生产者脚本发送消息:

bash 复制代码
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

然后,在另一个终端中使用消费者脚本接收并打印消息:

bash 复制代码
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

四、配置开机自启

为了实现Kafka及其依赖的Zookeeper服务随系统启动而自动启动,可以使用systemctl进行配置。

创建Systemd服务文件

/lib/systemd/system/目录下创建Zookeeper和Kafka的服务配置文件。

Zookeeper服务配置(zookeeper.service
ini 复制代码
[Unit]
Description=Zookeeper service
After=network.target

[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/jdk1.8.0_201/bin"
User=root
Group=root
ExecStart=/usr/local/kafka/kafka_2.12-2.2.0/bin/zookeeper-server-start.sh /usr/local/kafka/kafka_2.12-2.2.0/config/zookeeper.properties
ExecStop=/usr/local/kafka/kafka_2.12-2.2.0/bin/zookeeper-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
Kafka服务配置(kafka.service
ini 复制代码
[Unit]
Description=Apache Kafka server (broker)
After=network.target zookeeper.service

[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/jdk1.8.0_201/bin"
User=root
Group=root
ExecStart=/usr/local/kafka/kafka_2.12-2.2.0/bin/kafka-server-start.sh /usr/local/kafka/kafka_2.12-2.2.0/config/server.properties
ExecStop=/usr/local/kafka/kafka_2.12-2.2.0/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

注:请根据实际安装路径调整上述文件中的路径设置。

刷新配置并启用服务

刷新systemd配置并启用Zookeeper和Kafka服务:

bash 复制代码
systemctl daemon-reload
systemctl enable zookeeper
systemctl enable kafka

使用systemctl管理服务

现在,你可以使用以下命令来启动、停止或重启Zookeeper和Kafka服务:

bash 复制代码
systemctl start zookeeper
systemctl start kafka

systemctl status zookeeper
systemctl status kafka

注意:启动Kafka之前必须先启动Zookeeper。

故障排除

如果遇到Zookeeper无法启动的问题,尝试删除/tmp/zookeeper/version-2/log.*下的临时文件,再重新启动服务。

相关推荐
初次攀爬者4 小时前
Kafka + KRaft模式架构基础介绍
后端·kafka
初次攀爬者5 小时前
Kafka + ZooKeeper架构基础介绍
后端·zookeeper·kafka
初次攀爬者5 小时前
Kafka 基础介绍
spring boot·kafka·消息队列
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
xy123061 天前
OpenStack Train 部署实战(三)控制节点--keystone服务
centos·openstack
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github