第二章 安装Kafka
这章我打算简单看看,毕竟作为业务侧,一般就直接用,了解即可,不经常需要自己部署的。、
【事前准备】
Kafka是Java开发的应用程序,所以需要java环境。可以装在Windows、MacOS、Linux多个操作系统上。牛逼。常用的是Linuc上玩耍
要安装Zookeeper,来存集群的元数据、消息费信息。kafka发行版自带了zookeeper
【2.3.2 topic的默认配置】
1.num.partitions 分区数,默认是1,可以增,不能减
分区数的选择,这是创建topic的时候要考虑的一个事儿。topic的吞吐量是多少?生产者多少?消费者多少?能容忍多少量的堆积?每个broker包含的分区个数?可用磁盘空间?网络带宽?
这些都要根据自己业务的实际情况考虑
2. log.retention.ms
默认使用log.retention.hours参数配置时间,默认168h=一周。
还有
log.retention.minutes
log.retention.ms
就是时间的单位不一样,都是消息的保留时间,推荐使用ms,精确。如果都指定,就用时间最短的。
时间的计算,是当前时间 - 磁盘上日志片段(这个概念我在前面没写,以后要补上)的最后修改时间。这个时间,会受到分区移动的影响,导致多保留一段时间,详见第九章
3.log.retention.bytes
单个分区,可以保留的最大字节数
跟多个时间同理,时间和字节都指定的时候,只要一个限制达到了,就会删除消息。
4.log.segment.bytes
日志片段的上限,默认1GB
消息在到达broker的时候,它们被追加到当前分区的日志片段,片段大小达到这个log.segment.bytes时,这个日志片段就会关闭,开一个新的日志片段。日志片段一旦关闭,就开始等待过期。
所以这个参数越小,日志片段的关闭、文件重分配就越频繁,会降低磁盘的写入的整体效率。
5.log.segment.ms
日志片段的关闭时间,用的很少,一般用bytes
6.message.max.bytes
单个消息的大小,默认是100w B = 1M;是指压缩后消息的大小
【硬件的选择】磁盘吞吐量、磁盘容量 —— 影响生产者的写入
、内存、—— 影响消费者
网络 、CPU
【2.6 Kafka集群的配置】 没看
【2.7 生产环境的注意事项】没看