kafka系列之broker重点配置解析(三)

来源:互联网 发布:阿里云企业域名备案 编辑:程序博客网 时间:2024/05/16 08:58

kafka broker 配置

对应kafka安装目录config/server.properties文件的配置

  • broker.id

    每一个Kafka的broker都有一个整数的标识。我们设置broker.id来标识它。默认这个整数是0。这个整数必须是在一个集群中是唯一的,且必须>=0。推荐该值能对应上broker所在的主机名。

  • port

    该值是监听TCP的端口。默认是配置9092。可以设置可用的任意端口,不过需要注意的是如果该值小于1024,Kafka必须以root权限启动。使用root权限启动并不推荐。

  • zookeeper.connect

    连接zk的配置,默认配置localhost:2181。存放broker的元数据。配置值格式是:hostname:port/path,如果多个以分号隔开。

    • hostname:zk的hostname或者ip地址
    • port:客户端的与zk通讯的端口
    • path:一个可选的zk路径参数。kafka集群如果使用了chroot环境,需要设置该参数。如果没有配置,使用root路径。如果path配置了,但是kafka集群没有使用chroot环境,那么该path路径会在broker启动的时候创建。(推荐使用该配置,可以与其他kafka集群共用一个zk,且没有冲突)
  • log.dirs

    Kafka会保留消息到磁盘,并且这些日志片段会按目录区分存放在log.dirs配置的路径,多个配置使用英文逗号隔开。

  • num.recovery.threads.per.data.dir

    kafka可以配置一个线程池,线程池的使用场景如下:

    • 当正常启动的时候,开启每个parition的文档块segment
    • 当失败后重启时,检查parition的文档块
    • 当关闭kafka的时候,清除关闭文档块

    默认,每个目录只有一个线程。最好是设置多个线程数,这样在服务器启动或者关闭的时候,都可以并行的进行操作。尤其是当非正常停机后,重启时,如果有大量的分区数,那么启动broker将会花费大量的时间。注意,这个参数是针对每个目录的。比如,num.recovery.threads.per.data.dir设置为8,如果有3个log.dirs路径,那么一共会有24个线程。

  • auto.create.topics.enable

    配置是否开启自动创建topic的权限。默认该值为true。表示kafka会在以下三种情况下自动创建topic:
    - 当生产者开始往topic发送消息的时候
    - 当消费者开始从topic消费消息的时候
    - 当任何客户端请求topic的元数据的时候

  • num.partitions

    topic创建需要多少分区。默认是1。分区数量一旦设置,只能增加,不能减少。

  • log.retention.ms

    日志保留的时间,超过该时间,日志将被清理。同log.retention.hours、log.retention.minutes意思。推荐使用log.retention.ms配置。三个都配置,优先使用log.retention.ms

  • log.retention.bytes

    日志保留的字节,超过该配置,日志将被清理。应用在每一个分区。如果log.retention.ms与该配置都有,将会同时起作用。

  • log.segment.bytes

    日志片段的大小设置,默认1GB。超过设置的大小,该日志片段会关闭,再重新创建一个日志片段存放日志。一旦日志片段关闭了,说明该日志片段可以清理了。该值设置过小,可能会频繁关闭文件与创建文件,极大降低磁盘的写性能。

  • log.segment.ms

    日志片段的时间设置。超过设置的时间,该日志片段会关闭,再重新创建一个日志片段存放日志。当该配置与log.segment.bytes都配置的时候,同时起作用。

  • message.max.bytes

    生产者发送给broker消息的最大字节数。默认值是1000000,也就是1MB。生产者发送的消息超过该设置,会被broker拒绝接收,并且会收到broker的错误报告。

原创粉丝点击