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项配置,这里就不一一详解了,感兴趣的小伙伴请参考这里