broker的配置文件位于kafka的config/server.properties文件。
Broker基本配置
broker.id:代理Id,必须是唯一的整数。可以是0,1,2,3这样的自定义编号,也可以是IP地址的最后一位,如23,24,25,建议使用后面的编码方式。
auto.leader.rebalance.enable:是否允许leader节点自动分配,启用的话,会有后台进程定时检查并触发转移leader操作。默认启用。
background.threads:后台处理任务的进程数,默认为10.
Topic配置
auto.create.topics.enable:是否允许自动创建主题,默认为true,建议设置为false。
delete.topic.enable:是否允许删除主题,默认不允许,建议保持现状。
Zookeeper配置
zookeeper.connect:zookeeper服务器的地址和端口号,如果有多个的话,用逗号分开。如10.0.10.1:2181,10.0.10.2:2182。
zookeeper.connection.timeout.ms:Zookeeper连接超时时间,单位为ms,默认值6000。
Socket服务器设置
listeners:监听服务器,端口号必须与port一致,PLAINTEXT://:9092
port:监听端口
host.name:broker绑定的主机地址,可以是主机名,也可以是ip地址。默认值localhost。如果不设置的话,通过客户端连接的话,会找不到服务器。
advertised.host.name:代理广播给生产者和消费者的端口号,如果没有设置的话,默认值为host.name的值。
num.network.threads:并发网络线程数,默认为3
num.io.threads:并发IO线程数,默认为8
socket.send.buffer.bytes:socket发送服务器的缓存区,默认102400字节
socket.receive.buffer.bytes:socket接收服务器的缓存区,默认102400字节
socket.request.max.bytes:socket每次请求的最大字节数,默认102857600字节
日志配置
log.dirs:日志的存放路径
num.partitions:每个主题的默认分区数,默认值1。分区数越多,可并行的消费者越多,但会导致代理服务器处理更多的文件。
num.recovery.threads.per.data.dir:每个数据目录的线程数量,在启动时恢复日志和关闭时冲洗使用。建议和RAID队列中的数据目录一同增加。
日志写入磁盘策略
log.flush.interval.messages:两条消息的写入磁盘的间隔时间,默认值10000,单位毫秒。
log.flush.interval.ms:将消息强制写入磁盘前,消息占用日志文件的最大时间。
日志保存策略
log.retention.hours:日志最少保存时间,即超过某时间后才可能被删除,默认值168,单位小时。
log.retention.bytes:日志文件的最大存储容量,默认1073741824,单位字节。
log.segment.bytes:单个日志文件的最大存储容量,默认1073741824,单位字节。
log.retention.check.interval.ms:日志可以删除的最早时间,默认为300000,单位毫秒。即日志只有在创建5分钟后才可以删除。
Broker总共有130项配置,这里就不一一详解了,感兴趣的小伙伴请参考这里。