温馨提示×

ubuntu里kafka如何设置

小樊
35
2026-09-05 16:49:21
栏目: 智能运维

下面按**在 Ubuntu 上安装并配置 Kafka(以 Kafka 3.x + 自带 Zookeeper 为例)**来说明,适合单机/开发环境,也会提到生产环境要点。


一、环境准备

1. 安装 Java

Kafka 需要 JDK 8 或以上:

sudo apt update
sudo apt install openjdk-11-jdk -y
java -version

二、下载并安装 Kafka

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

三、基础配置(核心)

1. Zookeeper 配置(Kafka < 3.3 或仍用 ZK)

cd /opt/kafka
vi config/zookeeper.properties

常用配置:

dataDir=/tmp/zookeeper
clientPort=2181

启动 Zookeeper:

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

2. Kafka Server 配置

vi 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
default.replication.factor=1
min.insync.replicas=1

⚠️ 如果是远程访问,要把 localhost 改成服务器 IP

启动 Kafka:

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

四、Kafka 3.3+(Kraft 模式,无 Zookeeper)

如果你用的是 Kafka 3.3+ 且不想用 Zookeeper

cd /opt/kafka

1. 生成集群 ID

KAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid)

2. 格式化

bin/kafka-storage.sh format \
  -t $KAFKA_CLUSTER_ID \
  -c config/kraft/server.properties

3. 修改配置

vi config/kraft/server.properties
process.roles=broker,controller
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://localhost:9092
controller.quorum.voters=0@localhost:9093

4. 启动

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

五、创建 Topic(验证)

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-producer.sh \
  --topic test \
  --bootstrap-server localhost:9092

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

七、开机自启(systemd,推荐)

sudo vim /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=network.target

[Service]
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
sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka

八、常见坑

问题 原因
连接超时 advertised.listeners 配置错
无法远程连接 Ubuntu 防火墙 / 云安全组
单节点报错 replication.factor > 1
数据丢失 log.dirs 在 /tmp

如果你告诉我:

  • Ubuntu 版本
  • Kafka 版本
  • 单机 / 集群
  • 是否云服务器

我可以给你更精确的一份配置

0