温馨提示×

kafka在linux怎样配置

小樊
46
2026-09-02 07:20:55
栏目: 智能运维

下面给你一份在 Linux 上配置 Kafka 的实用指南,从安装到基本配置,适合新手快速上手。


一、环境准备

1. 安装 JDK(Kafka 依赖 Java)

# 以 CentOS / Rocky / Alma 为例
sudo yum install -y java-1.8.0-openjdk

# Ubuntu / Debian
sudo apt install -y openjdk-8-jdk

# 验证
java -version

二、下载并安装 Kafka

cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
sudo tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 kafka
cd kafka

建议使用 Kafka 自带的 Zookeeper(简单场景)


三、启动 Zookeeper(Kafka 依赖)

# 启动 Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties

后台运行:

nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &

四、配置 Kafka

1. 修改 Kafka 配置文件

vi config/server.properties

常见关键配置:

# broker 唯一 ID
broker.id=0

# 监听地址(非常重要)
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092

# 日志存储目录
log.dirs=/opt/kafka/logs

# Zookeeper 地址
zookeeper.connect=localhost:2181

# 分区副本数(单机为1)
default.replication.factor=1
num.partitions=1

⚠️ advertised.listeners 必须写外部可访问的 IP,否则客户端连不上


五、启动 Kafka

bin/kafka-server-start.sh config/server.properties

后台运行:

nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &

六、基础测试(验证是否可用)

1. 创建 Topic

bin/kafka-topics.sh --create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1

2. 查看 Topic

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

3. 生产消息

bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092

4. 消费消息

bin/kafka-console-consumer.sh \
--topic test \
--from-beginning \
--bootstrap-server localhost:9092

七、常见 Linux 系统配置(生产环境建议)

1. 防火墙

# 开放 9092 和 2181
firewall-cmd --add-port=9092/tcp --permanent
firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload

2. 文件句柄数

ulimit -n 65536

3. 开机自启(systemd 示例)

# /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=zookeeper.service

[Service]
Type=simple
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

八、Kafka 3.x 新特性(可选)

  • Kafka 3.x 支持 KRaft 模式(无 Zookeeper)
  • 新项目建议学习 KRaft,老系统仍可沿用 Zookeeper

如果你愿意,可以告诉我:

  • ✅ 你是 学习 / 生产 / 测试
  • ✅ 单机还是集群
  • ✅ 是否用 Docker

我可以给你更精确的配置方案

0