温馨提示×

ubuntu上kafka咋去配置

小樊
48
2026-09-05 16:59:18
栏目: 智能运维

下面按**在 Ubuntu 上配置 Kafka(以 Kafka 3.x + 自带 Zookeeper 为例)**来说明,从安装到常见配置点,比较实用。


一、前提准备

1. 安装 Java

Kafka 依赖 JVM:

sudo apt update
sudo apt install openjdk-17-jdk -y
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

三、基本配置(重点)

1. Zookeeper 配置(默认即可)

配置文件:

/opt/kafka/config/zookeeper.properties

常用项:

dataDir=/tmp/zookeeper
clientPort=2181

2. Kafka 核心配置

配置文件:

/opt/kafka/config/server.properties

最基础必须改的:

#  broker 唯一 ID
broker.id=0

# 监听地址(本机 IP 或 0.0.0.0)
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://<你的IP>:9092

# Zookeeper 地址
zookeeper.connect=localhost:2181

# 日志存放位置
log.dirs=/tmp/kafka-logs

⚠️ 如果是远程访问,一定要配置 advertised.listeners


四、启动 Kafka

1. 启动 Zookeeper

/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties

2. 启动 Kafka

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

五、常见配置项说明

1. 单节点 / 多 broker

单节点(开发)

  • broker.id=0
  • 只起一个 Kafka 进程

多 broker(伪集群)

复制 server.properties

cp server.properties server-1.properties
cp server.properties server-2.properties

修改:

broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka-logs-1

2. Topic 默认配置

num.partitions=3
default.replication.factor=1

生产建议:

default.replication.factor=3
min.insync.replicas=2

3. 数据保留策略

log.retention.hours=168
log.segment.bytes=1073741824

六、常用命令

# 创建 topic
kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1

# 查看 topic
kafka-topics.sh --list --bootstrap-server localhost:9092

# 生产消息
kafka-console-producer.sh --topic test --bootstrap-server localhost:9092

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

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

Kafka service 示例

sudo vim /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
Requires=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-abnormal

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka

八、Kafka 3.x 新方式(不用 Zookeeper,KRaft)

如果你想不用 Zookeeper,可以用 KRaft 模式,我也可以单独给你一套配置。


如果你能告诉我:

  • ✅ 单节点还是集群
  • ✅ 本地还是云服务器
  • ✅ 是否生产环境

我可以直接给你一份可复制的配置文件

0