温馨提示×

ubuntu kafka如何设参数

小樊
41
2026-09-11 12:18:53
栏目: 智能运维

在 Ubuntu 上配置 Kafka 参数,主要取决于你如何安装 Kafka(apt、官方二进制包、Docker 等)以及你想配置哪一类参数(Broker、Topic、Producer、Consumer、JVM 等)。下面我按最常见场景给你系统讲一下。


一、Kafka 安装方式常见情况

  1. 官方二进制包(最推荐)
    • 路径一般是:/opt/kafka~/kafka
  2. apt 安装(较少用)
    • 配置路径可能在 /etc/kafka
  3. Docker
    • 通过环境变量或挂载配置文件

二、Kafka Broker 参数(最重要)

1️⃣ 配置文件位置

如果是官方包:

cd /opt/kafka
ls config/

核心文件:

  • config/server.properties ✅(Broker 参数)
  • config/zookeeper.properties
  • config/consumer.properties
  • config/producer.properties

2️⃣ 常见 Broker 参数示例

编辑:

sudo nano config/server.properties

常用参数:

# 唯一 ID(集群中不能重复)
broker.id=0

# 监听地址
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your-host-ip:9092

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

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

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

# 单节点默认
num.partitions=1
default.replication.factor=1

改完重启:

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

三、Topic 级别参数

创建 Topic 时指定

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

修改 Topic 参数

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

常用 Topic 参数:

  • retention.ms
  • segment.bytes
  • cleanup.policy

四、Producer 参数

命令行方式

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

producer.properties 示例

acks=all
retries=3
batch.size=16384
linger.ms=5

五、Consumer 参数

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

consumer.properties:

group.id=test-group
enable.auto.commit=true
auto.offset.reset=earliest

六、JVM 参数(内存)

编辑:

bin/kafka-server-start.sh

或设置环境变量:

export KAFKA_HEAP_OPTS="-Xms1G -Xmx1G"

推荐:

  • 开发:1–2G
  • 生产:4G+

七、Ubuntu 系统级建议

# 文件描述符
ulimit -n 100000

# 内核参数
sudo sysctl -w vm.max_map_count=262144

八、常见坑提醒

advertised.listeners 必须能被客户端访问
✅ 集群中 broker.id 不能重复
✅ KRaft 和 Zookeeper 模式不能混用


如果你能告诉我:

  • Ubuntu 版本
  • Kafka 版本(2.x / 3.x)
  • 单机还是集群
  • 想调哪类参数(性能 / 稳定性 / 安全)

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

0