设为首页 加入收藏

TOP

Kafka系列之broker配置
2019-04-23 14:28:55 】 浏览:40
Tags:Kafka 系列 broker 配置

本文档的参数主要针对是kafka 0.10.0版本。

更多信息可以查看:官方文档

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.roll.hours

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

message.max.bytes

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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇日志收集之rsyslog kafka配置 下一篇logback监控kafka debug日志

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目