Linux 环境下 Kafka 的安装与配置指南
环境准备
在安装 Kafka 之前,需确保 Linux 系统满足基本要求,推荐使用 CentOS 7+ 或 Ubuntu 18.04+ 系统,并配置 Java 运行环境(Kafka 依赖 Java 11 或更高版本),通过以下命令检查 Java 版本:

java -version
若未安装 Java,可使用包管理器安装(以 CentOS 为例):
sudo yum install java-11-openjdk-devel -y
需关闭防火墙或开放相关端口(默认 Kafka 使用 9092 端口,ZooKeeper 使用 2181、2888、3888 端口):
sudo systemctl stop firewalld # 临时关闭 # 或开放端口 sudo firewall-cmd --permanent --add-port=9092/tcp sudo firewall-cmd --reload
下载并解压 Kafka
访问 Kafka 官网(https://kafka.apache.org/downloads)获取最新稳定版二进制包,以 3.7.0 版本为例,执行以下命令:
wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz tar -xzf kafka_2.13-3.7.0.tgz mv kafka_2.13-3.7.0 /usr/local/kafka cd /usr/local/kafka
解压后,Kafka 目录包含 bin(可执行脚本)、config(配置文件)、libs(依赖库)等关键文件夹。
配置 ZooKeeper
Kafka 依赖 ZooKeeper 进行集群元数据管理,默认配置文件为 config/zookeeper.properties,可根据需求修改以下参数:
# 配置数据存储目录 dataDir=/tmp/zookeeper # 客户端连接端口 clientPort=2181 # 集群通信端口(若部署集群需配置) server.1=192.168.1.101:2888:3888 server.2=192.168.1.102:2888:3888
单机测试时,可保持默认配置。

配置 Kafka 服务
编辑 config/server.properties 文件,核心参数如下:
# Broker ID(集群中需唯一) broker.id=0 # 监听地址与端口 listeners=PLAINTEXT://:9092 # 日志存储目录 log.dirs=/tmp/kafka-logs # ZooKeeper 连接地址 zookeeper.connect=localhost:2181 # 允许主题自动创建 auto.create.topics.enable=true
若需跨节点通信,需将 listeners 中的地址修改为服务器 IP(如 PLAINTEXT://192.168.1.100:9092)。
启动服务
按顺序启动 ZooKeeper 和 Kafka 服务,建议使用后台运行方式:
# 启动 ZooKeeper bin/zookeeper-server-start.sh -daemon config/zookeeper.properties # 启动 Kafka bin/kafka-server-start.sh -daemon config/server.properties
通过以下命令检查服务状态:
# 查看 ZooKeeper 进程 ps aux | grep zookeeper # 查看 Kafka 进程 ps aux | grep kafka
验证安装
创建测试主题并生产/消费消息,确认 Kafka 正常运行:
# 创建主题 "test" bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 # 列出主题 bin/kafka-topics.sh --list --bootstrap-server localhost:9092 # 启动消费者(新终端) bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092 # 启动生产者(新终端) bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
在生产者终端输入消息后,若消费者终端能实时显示,则安装成功。

常见问题与优化
- 端口冲突:确保 9092、2181 等端口未被占用,可通过
netstat -tulnp | grep 9092检查。 - 内存不足:在
bin/kafka-server-start.sh中增加 JVM 内存参数(如export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G")。 - 日志清理:配置
log.retention.hours控制消息保留时间,避免日志目录过大。 - 集群部署:多节点集群需修改
server.properties中的broker.id、listeners及zookeeper.connect,并在各节点重复安装步骤。
服务管理
为方便启停,可将 Kafka 注册为系统服务,创建服务文件 /etc/systemd/system/kafka.service:
[Unit] Description=Apache Kafka Server After=network.target zookeeper.service Requires=zookeeper.service [Service] Type=simple Environment="KAFKA_HEAP_OPTS=-Xmx1G -Xms1G" ExecStart=/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh User=kafka Group=kafka [Install] WantedBy=multi-user.target
通过 systemctl start kafka、systemctl stop kafka 管理服务。
通过以上步骤,可完成 Linux 环境下 Kafka 的单机安装与基础配置,生产环境中需结合监控、安全认证(如 SASL)和集群部署方案,以确保系统的高可用性与安全性,建议定期升级 Kafka 版本以获取最新功能与漏洞修复。

















