1. 介绍

本文的broker参数配置并不会完整包含所有参数的配置。文中的配置文件server.properties由kafka-0.10.0.0提供模板。我在其基础上将其提供的参数配置进行中文注释,方便查阅。

以下配置文件的参数配置可用于生产环境配置。配置依据来源于kafka官方文档

PS: 有些配置和默认值一样的,我就直接不配置了

#############################基本配置#############################

# broker id,多个broker服务器的话,每个broker id必须不同
broker.id=0

# kafka broker所在节点的hostname
hostname=10.45.10.34:9092

#  处理网络请求的线程数
num.network.threads= 8

# 执行磁盘IO的线程数
num.io.threads=8

# server使用的send buffer大小。
socket.send.buffer.bytes=1048576

# server使用的recive buffer大小。
socket.receive.buffer.bytes=1048576

# 接受的最大请求大小(防止OOM)
socket.request.max.bytes=104857600

#-------------added by Kaim ---------------

# 加入队列的最大请求数(超过该值,network thread阻塞)
queued.max.requests=16

# purgatory(炼狱)是个容器,用来存放不能马上答复的网络请求。如果能答复请求则从炼狱删除。这个是fetch炼狱保存的最大请求数。设置的比默认值小是据说因为这里有个BUG,不知道0.10.x中解决没

# BUG说明见:http://blog.csdn.net/stark_summer/article/details/50203133
fetch.purgatory.purge.interval.requests=100

# 生产者炼狱保存的最大请求数
producer.purgatory.purge.interval.requests=100

############################# 日志配置#############################

# 可以设置多个日志存放的路径
log.dirs=/tmp/kafka-logs

# 默认每个主题的分区数,生产环境建议值:8
num.partitions= 8

# 启停时做日志恢复每个目录所需的线程数,采用RAID的时候可以增大该值
num.recovery.threads.per.data.dir=1

# 写入磁盘的消息批大小
log.flush.interval.messages=10000

# 强制刷新消息到磁盘的时间阈值
log.flush.interval.ms=10000

# 日志保留的最少时间
log.retention.hours=168

# 每个日志段大小,超过该值会生成新日志段
log.segment.bytes=1073741824


# 检查日志分段文件的间隔时间,以确定是否文件属性是否到达删除要求。
log.retention.check.interval.ms=300000

# --------------added by kami--------------

# 自动创建主题
auto.create.topics.enable=true

# 当执行一次fetch后,需要一定的空间扫描最近的offset,设置的越大越好,一般使用默认值就可以
log.index.interval.bytes=4096

# 每个log segment的最大尺寸。注意,如果log尺寸达到这个数值,即使尺寸没有超过log.segment.bytes限制,也需要产生新的log  segment。
log.index.size.max.bytes=10485760

# 检查是否需要fsync的时间间隔
log.flush.scheduler.interval.ms=2000

# 即使文件没有到达log.segment.bytes,只要文件创建时间到达此属性,就会创建新文件。
log.roll.hours=168

# server可以接收的消息最大尺寸。重要的是,consumer和producer有关这个属性的设置必须同步,否则producer发布的消息对consumer来说太大。默认值均为一百万
message.max.bytes=1000000



############################# Zookeeper #############################

# zookeeper server地址,如果有多个则用逗号分隔
zookeeper.connect= 127.0.0.1:2181

# Timeout in ms for connecting to zookeeper

# zk连接的超时时间
zookeeper.connection.timeout.ms=6000

# zk follower的同步延迟时间
zookeeper.sync.time.ms = 2000

############################ replication configuration added by KamiWan##############

# 从leader备份数据的线程数
num.replica.fetchers=4

# 备份时每次fetch的最大值
replica.fetch.max.bytes=1048576

# follwer执行fetcher请求时的最大等待时间
replica.fetch.wait.max.ms=500

# 默认的replication数量,可以根据所需要的可靠性要求来配置
default.replication.factor=2


########################others#####################

# 开启删除topic的支持,延迟一段时间后执行,不需要重启集群。
delete.topic.enable=true