回顾:kafka极简入门(三)--建立topicapache
前言
kafka针对broker, topic, producer, consumer的配置很是多,这里讲一下经常使用的配置bootstrap
1.broker相关配置
- broker.id
broker在kafka集群中的惟一标识,必须是一个大于等于0的整数,若是不写的话默认从1001开始。
建议:把它设置成与机器名具备相关性的整数。
- port
设置kafka的端口号,默认状况下是9092,不建议修改为1024如下的端口,由于须要使用root权限启动。
-
zookeeper.connect
设置zookeeper集群,该配置参数是一组用逗号隔开的host:port/path列表segmentfault
- host是zookeeper服务器的机器名或ip地址
- port是zookeeper服务器的端口
- /path是可选的zookeeper路径,做为kafka集群的chroot环境,默认是根路径,若是指定的chroot路径不存在,kafka会在启动的时候建立它。使用chroot使得zookeeper集群能够共享给其余应用程序时而不会产生冲突。
- log.dirs
配置kafka日志片断的目录位置,多个路径以逗号隔开。若是配置了多个路径,kafka会根据最少使用原则,把统一分区的日志保存到同一路径下,注意的是,kafka会往拥有最少数量分区的路径新增分区,而不是往拥有最小磁盘空间的路径新增分区。
-
auto.create.topics.enable
配置是否开启自动建立topic,若是设置为true, kafka会在如下几种场景自动建立topic:安全
- 当一个producer开始往topic写入消息时。
- 当一个consumer开始从topic消费消息时。
- 当一个client向topic发送元数据请求时。
- num.partitions
配置建立主题时包含多少个分区,默认值为1,由于咱们能增长主题的分区数,可是不能减小分区的个数,因此,若是要让一个主题的分区个数少于num.partitions须要手动建立该主题而不是经过自动建立主题。
- log.retention.hours
配置kafka保留数据的时间,默认为168小时也就是7天,效果等同log.retention.minutes和log.retention.ms,只是单位不同,分别是小时,分钟,和毫秒,推荐使用log.retention.ms,粒度更加细,若是三个参数都配置了则去数值最小的配置。
- log.retention.bytes
配置一个分区能保存最大的字节数,若是超出的部分就会被删除,同时配置了log.retention.hours/log.retention.minutes/log.retention.ms的话,任一个知足条件都会触发数据删除。
- message.max.bytes
配置消息的大小限制,默认为100000,也就是1M,这里的大小是指在kafka压缩后的大小,也就是说实际消息能够大于1M,若是消息超过这个限制,则会被kafka拒收。
2.producer相关配置
3.Consumer相关配置
默认使用org.apache.kafka.clients.consumer.RangeAssignor,这个类实现了Range策略,RoundRabin的实现类为org.apache.kafka.clients.consumer.RoundRobinAssignor,咱们还能够自定义策略。测试
若是对你有用麻烦点个赞哦 ^_^spa