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

相关推荐
Gaoithe2 小时前
ubuntu 端口复用
linux·运维·ubuntu
德先生&赛先生3 小时前
Linux编程:1、文件编程
linux
程序猿小D3 小时前
第16节 Node.js 文件系统
linux·服务器·前端·node.js·编辑器·vim
多多*4 小时前
微服务网关SpringCloudGateway+SaToken鉴权
linux·开发语言·redis·python·sql·log4j·bootstrap
HAPPY酷5 小时前
Kafka 和Redis 在系统架构中的位置
redis·kafka·系统架构
IT界小黑的对象6 小时前
virtualBox部署ubuntu22.04虚拟机 NAT+host only 宿主机ping不通虚拟机
linux·运维·服务器
SilentCodeY6 小时前
Ubuntu 系统通过防火墙管控 Docker 容器
linux·安全·ubuntu·系统防火墙
忆雾屿6 小时前
云原生时代 Kafka 深度实践:06原理剖析与源码解读
java·后端·云原生·kafka
weixin_527550406 小时前
Linux 环境下高效视频切帧的实用指南
linux·运维·音视频
keson要进步6 小时前
CICD实战(一) -----Jenkins的下载与安装
运维·ci/cd·centos·自动化·jenkins