温馨提示×

ubuntu kafka如何启配置

小樊
35
2026-09-05 17:02:16
栏目: 智能运维

下面按Ubuntu 上 Kafka 的启动与基本配置来说明,假设你是 Kafka 3.x + Kafka 自带 Zookeeper(或 KRaft) 环境。


一、前提条件

  1. 已安装 Java 8 或以上
java -version
  1. 已下载 Kafka(以 3.6.1 为例)
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz
cd kafka_2.13-3.6.1

二、使用 Zookeeper 模式(传统方式)

1️⃣ 启动 Zookeeper

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

后台运行:

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

2️⃣ 配置 Kafka

主要配置文件:

config/server.properties

常用配置项:

#  broker 唯一 ID
broker.id=0

# 监听地址(本机)
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092

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

# Zookeeper 地址
zookeeper.connect=localhost:2181

# 单节点可关副本检查
offsets.topic.replication.factor=1

3️⃣ 启动 Kafka

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

后台运行:

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

三、使用 KRaft 模式(Kafka 3.x 推荐,无 Zookeeper)

1️⃣ 生成集群 ID

bin/kafka-storage.sh random-uuid

例如:

abc12345-6789-xxxx

2️⃣ 修改配置

config/kraft/server.properties

示例:

process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://localhost:9092
log.dirs=/tmp/kraft-logs

3️⃣ 初始化存储

bin/kafka-storage.sh format \
  --cluster-id abc12345-6789-xxxx \
  --config config/kraft/server.properties

4️⃣ 启动 Kafka

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

四、验证 Kafka 是否启动成功

创建 Topic

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

查看 Topic

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

生产 / 消费消息

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

五、常见问题

✅ 端口冲突 → 修改 listeners
✅ 无法连接 → 检查 advertised.listeners
✅ 单节点报错 → replication.factor=1


如果你需要:

  • ** systemd 开机自启**
  • 多 broker 集群
  • Docker / Ubuntu Server 实战配置

告诉我你的使用场景,我可以直接给你完整配置。

0