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.*下的临时文件,再重新启动服务。

相关推荐
深圳蔓延科技19 小时前
Kafka的高性能之路
后端·kafka
CYRUS_STUDIO1 天前
用 Frida 控制 Android 线程:kill 命令、挂起与恢复全解析
android·linux·逆向
熊猫李1 天前
rootfs-根文件系统详解
linux
dessler1 天前
Hadoop HDFS-高可用集群部署
linux·运维·hdfs
泽泽爱旅行1 天前
awk 语法解析-前端学习
linux·前端
阿里云云原生2 天前
嘉银科技基于阿里云 Kafka Serverless 提升业务弹性能力,节省成本超过 20%
kafka·serverless
轻松Ai享生活2 天前
5 节课深入学习Linux Cgroups
linux
christine-rr2 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
三坛海会大神5552 天前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆2 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs