Kafka集群所有重要参数配置详解与优化设置

成文时间:2022年2月22日。参数如有变化,请以官网参数和默认值为准!

今天为大家带来Kafka生产优化系列的第二篇 —— Kafka集群所有重要参数配置详解与优化设置。

kafka linux 优化 kafka优化参数_分布式

飞哥已将Kafka集群中所有重要参数全部分类总结,并具体讲解每个参数的含义。

如果各位同学在面试或者生产中如果遇到Kafka性能优化方面的问题,可以参考此文配置进行具体优化。

由大海哥主讲的更详细的《Kafka3.0入门、源码、优化与配置》系列课程,可以B站搜索“尚硅谷”进行了解!

Broker端配置详解

☆必配参数

官网提示:以下三个参数必配:

kafka linux 优化 kafka优化参数_big data_02

监听器相关参数

kafka linux 优化 kafka优化参数_big data_03

主题相关参数

kafka linux 优化 kafka优化参数_big data_04

线程相关参数

kafka linux 优化 kafka优化参数_数据_05

压缩相关参数

生产中,一般Kafka会配置压缩以减少磁盘占用。

kafka linux 优化 kafka优化参数_kafka_06

附:Facebook Zstandard官网提供的压缩算法对比结果:

kafka linux 优化 kafka优化参数_分布式_07

ZooKeeper相关参数

ZK相关的参数一般不做修改。默认即可。

kafka linux 优化 kafka优化参数_数据_08

重平衡与选举相关参数

重平衡相关参数需要根据实际需求进行调整,原理类似于HDFS中的重平衡。

kafka linux 优化 kafka优化参数_数据_09

日志刷写相关参数

在Linux系统中,当我们把数据写入文件系统之后,其实数据在操作系统的pagecache里面,并没有刷到磁盘上。如果操作系统挂了,数据就丢失了。大数据培训一方面,应用程序可以调用fsync这个系统调用来强制刷盘,另一方面,操作系统有后台线程,定时刷盘。频繁调用fsync会影响性能,需要在性能和可靠性之间进行权衡。实际上,官方不建议通过上述的三个参数来强制写盘,认为数据的可靠性通过replica来保证,而强制flush数据到磁盘会对整体性能产生影响。

尚硅谷大数据培训_专业的大数据培训机构_值得信赖的大数据教程

大数据

大数据教程

大数据培训

尚硅谷大数据拼课程、论口碑更给力

尚硅谷IT培训

立即咨询

Kafka的持久性并非要求同步数据到磁盘,因为问题节点都是从副本中恢复数据。这样刷盘依赖操作系统及Kafka的后台刷盘机制。这样的好处是:无需调优、高吞吐量、低延时和可全量恢复。

操作系统一般默认30s刷盘一次。

kafka linux 优化 kafka优化参数_数据_10

日志保留相关参数

日志保留相关参数需要根据具体的生产实际及磁盘容量与数据量进行调整。

kafka linux 优化 kafka优化参数_kafka linux 优化_11

日志滚动切片相关参数

日志滚动与切片参数建议根据生产实际进行调整。

kafka linux 优化 kafka优化参数_kafka linux 优化_12

元数据相关参数

元数据相关参数一般不做调整。

kafka linux 优化 kafka优化参数_数据_13

副本相关参数

副本相关参数一般不做调整。

kafka linux 优化 kafka优化参数_分布式_14

offset相关参数

offset内部主题相关参数,一般保持默认即可。

kafka linux 优化 kafka优化参数_big data_15

消息相关参数

kafka linux 优化 kafka优化参数_数据_16

Topic级别配置详解

topic级别的参数,一般都在broker中对应有默认配置,但是也可以对单独的topic进行设置,可以在topic创建之初使用--config来进行指定,也可以在创建完成之后再进行修改。

以下是比较重要的topic级别的参数配置。

日志清理压缩相关参数

kafka linux 优化 kafka优化参数_数据_17

日志刷写相关参数

kafka linux 优化 kafka优化参数_kafka_18

索引相关参数

kafka linux 优化 kafka优化参数_big data_19

消息、副本与选举相关参数

kafka linux 优化 kafka优化参数_数据_20

日志保留与滚动相关参数

kafka linux 优化 kafka优化参数_数据_21

Producer端配置详解

Producer负责向服务器发送数据,在实际生产中,更多的是使用API作为Producer端进行数据发送。

以下是Producer端中比较重要的配置参数。

序列化、分区器、拦截器相关参数

kafka linux 优化 kafka优化参数_kafka linux 优化_22

集群地址与压缩相关参数

kafka linux 优化 kafka优化参数_数据_23

批处理相关参数

kafka linux 优化 kafka优化参数_数据_24

TCP缓冲相关参数

kafka linux 优化 kafka优化参数_数据_25

消息有序性相关参数

kafka linux 优化 kafka优化参数_数据_26

事务相关参数

kafka linux 优化 kafka优化参数_kafka linux 优化_27

Consumer端配置详解

Consumer对数据进行消费,一般通过流处理框架对Kafka中的数据进行消费处理,因此,Consumer端是否消费正常对于数据处理显得尤为重要。

以下是Consumer端的重要参数。

必配参数

kafka linux 优化 kafka优化参数_数据_28

反序列化、拦截器相关参数

kafka linux 优化 kafka优化参数_kafka_29

自动提交offset参数

kafka linux 优化 kafka优化参数_big data_30

拉取数据相关参数

kafka linux 优化 kafka优化参数_big data_31

分区分配策略参数

kafka linux 优化 kafka优化参数_数据_32

TCP缓冲及其他参数

kafka linux 优化 kafka优化参数_big data_33