kafka官方文档学习笔记3--配置简述-阿里云开发者社区

开发者社区> 微服务> 正文
登录阅读全文

kafka官方文档学习笔记3--配置简述

简介: kafka配置简述;

Kafka使用key-value键值对格式的配置,这些配置即可以在进程启动时,根据指定的properties文件加载,也可以通过编程的方式,在程序中动态指定;根据集群中角色的不同分为6种配置:

  • broker配置:broker实例使用的默认配置;
  • topic配置:某个topic所使用的配置,如果显式指定,则覆盖broker实例的同名默认配置;
  • producer配置:针对producer实例;
  • consumer配置:针对consumer实例;
  • Connect配置:针对connector实例;
  • Stream配置:针对stream实例;
  • 管理端配置:用于管理集群权限的配置;

broker配置

常用配置:

  • broker.id:用于唯一标识集群中的一个broker实例;每个broker实例的id在集群中必须是全局唯一的;如果未指定,则由zookeeper自动生成;
  • log.dirs:区别于log.dir配置,指定日志数据存放路径;若没有指定,则使用log.dir配置指定的路径;如果配置多个路径,则broker会根据"最少使用"原则,把同一个分区的日志保存到同一个路径下;

broker会向拥有最少分区数量的路径下新增分区;

  • zookeeper.connect:broker集群所使用的zookeeper集群连接信息;格式:hostname:port/path,多个地址使用逗号分隔;/path是zookeeper的路径,作为kafka集群的chroot环境。默认使用/根路径;如果chroot路径不存在,broker启动时会自动创建;

使用chroot路径是一种最佳实践,可以将zookeeper集群共享给其它应用或者kafka集群使用;

  • num.recovery.threads.per.data.dir:每个目录处理消息日志的线程数;默认每个目录使用1个线程;对于有大量partition的broker来说,增加线程数,可以加快消息日志的处理速度;

如下情况会使用消息日志处理线程:
1)服务器正常启动时,用于打开每个分区的日志片段;
2)服务器崩溃重启时,用于检查和截断每个分区的日志片段;
3)服务器正常关闭时,用于关闭日志片段;

  • auto.create.topics.enable:如果topic不存在,是否允许自动创建topic;

如下几种情况下会创建topic:
1)生产者写入消息时;
2)消费者读取消息时;
3)客户端发送元数据请求时;

topic配置

topic相关的配置即可以使用broker的默认配置,也可以重写每个topic个自的配置;

  1. 在创建topic时重写配置:在命令行创建topic时,可以通过--config重写配置;示例如下:
> bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --partitions 1 --replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1
  1. 在更新topic时重写配置:通过--add-config添加配置,示例如下:
> bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name my-topic --alter --add-config max.message.bytes=128000

通过--describe查看配置,示例如下:

> bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name my-topic --describe

通过--delete-config删除配置,示例如下:

> bin/kafka-configs.sh --zookeeper localhost:2181  --entity-type topics --entity-name my-topic --alter --delete-config max.message.bytes

各个模块详细配置详见官方文档

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
微服务
使用钉钉扫一扫加入圈子
+ 订阅

构建可靠、高效、易扩展的技术基石

其他文章