Skip to content

12. 配置参数详解 ​

本文档导读

本文档详细解释 KRaft 相关的配置参数。

预计阅读时间: 40 分钟

相关文档:


13. 配置参数详解 ​

13.1 核心配置参数 ​

参数默认值说明推荐值
process.roles-节点角色 (broker/controller)根据部署模式
node.id-节点唯一标识0-1000
controller.quorum.voters-Controller 集群成员3-5 个节点
listeners-监听地址列表配置实际地址
controller.quorum.election.timeout.ms1000选举超时时间1000-5000
controller.quorum.heartbeat.interval.ms500心跳间隔100-500
metadata.log.max.record.bytes.between.snapshots20000快照触发阈值根据负载调整

13.2 性能调优参数 ​

properties
# ==================== 吞吐量优化 ====================
# 增加批量写入
metadata.log.max.batch.size=10000

# 减少 ACK 等待
controller.quorum.request.timeout.ms=2000

# 并行复制
num.replica.alter.log.dirs.threads=4

# ==================== 延迟优化 ====================
# 减少批量大小
metadata.log.max.batch.size=1000

# 减少快照间隔
metadata.log.max.snapshot.interval.bytes=10485760

# ==================== 可靠性优化 ====================
# 增加副本数 (仅 Controller)
controller.quorum.voters=1@host1:9093,2@host2:9093,3@host3:9093

# 增加快照保留
metadata.log.max.snapshot.cache.size=5

# 启用日志压缩
log.cleanup.policy=compact

13.3 不同场景的配置推荐 ​

properties
# ==================== 开发环境 ====================
# 单节点开发
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093

# 快速测试
metadata.log.max.record.bytes.between.snapshots=1000
controller.quorum.election.timeout.ms=500

# ==================== 测试环境 ====================
# 3 节点集群
process.roles=broker,controller
controller.quorum.voters=1@test1:9093,2@test2:9093,3@test3:9093

# 平衡性能和可靠性
metadata.log.max.record.bytes.between.snapshots=20000
controller.quorum.election.timeout.ms=1000

# ==================== 生产环境 ====================
# 分离 Broker 和 Controller
# Broker 配置
process.roles=broker
node.id=1
listeners=PLAINTEXT://:9092
controller.quorum.voters=1@ctrl1:9093,2@ctrl2:9093,3@ctrl3:9093

# Controller 配置
process.roles=controller
node.id=1
listeners=CONTROLLER://:9093
controller.quorum.voters=1@ctrl1:9093,2@ctrl2:9093,3@ctrl3:9093

# 高可靠性配置
metadata.log.max.record.bytes.between.snapshots=50000
metadata.log.max.snapshot.interval.bytes=52428800
controller.quorum.election.timeout.ms=2000