温馨提示×

ubuntu kafka如何设置参数

小樊
43
2026-09-17 18:30:09
栏目: 智能运维

在 Ubuntu 上配置 Kafka 参数,通常分为 服务端参数(broker)、生产者/消费者参数、以及 系统/启动参数。下面按常见使用场景说明。


一、Kafka 安装位置(常见)

通过官方二进制包安装时:

/opt/kafka/
├── config/
│   ├── server.properties
│   ├── producer.properties
│   └── consumer.properties
├── bin/

二、Kafka Broker 参数(最重要)

1️⃣ 修改 broker 配置

sudo vim /opt/kafka/config/server.properties

2️⃣ 常用核心参数

# broker 唯一 ID
broker.id=0

# 监听地址(外部访问一定要配置)
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092

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

# 默认分区数
num.partitions=3

# 副本因子
default.replication.factor=1

# 每个 topic 默认副本
offsets.topic.replication.factor=1

# 删除 topic(false 默认不能删)
delete.topic.enable=true

# Zookeeper(Kafka 2.x)
zookeeper.connect=localhost:2181

# Kafka 3.x(KRaft 模式)
# process.roles=broker,controller
# controller.quorum.voters=0@localhost:9093

修改后重启 Kafka:

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

三、JVM 参数(内存调优)

编辑:

sudo vim /opt/kafka/bin/kafka-server-start.sh

修改:

export KAFKA_HEAP_OPTS="-Xms1G -Xmx2G"

四、生产者参数

方式 1:配置文件

vim /opt/kafka/config/producer.properties
bootstrap.servers=localhost:9092
acks=all
retries=3
batch.size=16384
linger.ms=1

方式 2:命令行

kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic test \
  --producer-property acks=all

五、消费者参数

配置文件

vim /opt/kafka/config/consumer.properties
bootstrap.servers=localhost:9092
group.id=test-group
enable.auto.commit=true
auto.commit.interval.ms=1000

命令行

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

六、Topic 级别参数

创建 topic 时指定:

kafka-topics.sh --create \
  --bootstrap-server localhost:9092 \
  --topic my-topic \
  --partitions 3 \
  --replication-factor 1

修改参数:

kafka-configs.sh --alter \
  --bootstrap-server localhost:9092 \
  --entity-type topics \
  --entity-name my-topic \
  --add-config retention.ms=604800000

七、Ubuntu 系统级优化(推荐)

1️⃣ 文件描述符

ulimit -n 100000

2️⃣ 内核参数

sudo vim /etc/sysctl.conf
vm.swappiness=1
net.core.somaxconn=1024
sudo sysctl -p

八、常见坑提醒

✅ advertised.listeners 必须能被客户端访问
✅ Kafka 3.x 不再依赖 Zookeeper(KRaft)
✅ topic 删除需 delete.topic.enable=true
✅ 云服务器要开放 9092 端口


如果你能告诉我:

  • Kafka 版本(2.x / 3.x)
  • 单机 / 集群
  • 内网 / 公网访问

我可以给你一份 可直接用的 server.properties 配置。

0 踩