kafka之broker

(一)broker配置之-----常规配置

1、broker.id:每个broker的唯一标识

2、port:监听端口

3、zookeeper.connect:用于保存broker元数据的zookeeper地址

4、log.dirs:kafka日志存储路径(如果指定了多个路径,broker会往存储分区数最少的路径作为存储目录)

5、num.recovery.threads.per.data.dir:每个日志存储路径对应的线程数

6、auto.create.topics.enable:是否自动创建主题

默认情况下kafka会在如下情形自动创建主题:

(1)生产者开始向主题写消息时

(2)消费者开始向主题读消息时

(3)客户端向主题发送元数据时

(二)broker配置之-----主题配置

1、num.partitions:新创建的主题有多少个分区

2、log.retention.ms(minites/hours):指定磁盘上的消息会被保存多久,如果三个参数都制定了,则会选择最小的

3、log.retention.bytes:磁盘保存最大消息字节数,作用在每一个分区上

4、log.segment.bytes:日志片段大小。消息到达broker后,被追加到分区的当前日志片段上。当日志片段达到log.segment.bytes指定的大小,当前日志片段就会被关闭,一个新的日志片段被打开。参数越小,就会频繁打开和关闭新文件,从而降低磁盘写入的整体效率。

注意:日志片段关闭之前消息是不会过期的。如果一个片段10天才写满关闭,设置的过期时间是7天,那么日志片段从打开到过期是17天。

5、log.segment.ms:另一个控制日志片段关闭的参数。指定了多长时间之后日志片段被关闭。

6、message.max.btyes:broker用来限制单个消息的大小。

注:如果消费者的fetch.message.max.bytes比这个值小,那么比较大的消息将无法消费,导致消费者阻塞的情况。

(三)硬件条件

1、磁盘:影响生产者性能

2、内存:影响消费者性能(内存可以用作页面缓冲,消费者可以直接从页面缓冲读取数据)

3、CPU:要求较低。消息压缩,解压,计算偏移量后进行压缩后存储。

4、网络IO:kafka能够处理的最大数据流量

(四)kafka和zookeeper

1、kafka0.9.0.0版本之前,zk除了维护broker、主题、分区的元数据以外,还需要维护消费者组、偏移量等信息。这个版本之后,消费者相关元数据交由broker自己管理

2、消费者可以选择将偏移量提交到 Zookeeper 或 Kafka,还可以选择提交偏移量的时间间隔。建议使用最新版本的 Kafka,让消费者把偏移量提交到 Kafka 服务器上,消除对 Zookeep巳r 的依赖。

你可能感兴趣的:(kafka之broker)