MST

星途 面试题库

面试题:消息队列Kafka开发中生产者常见的参数有哪些及如何进行初步优化?

在Kafka开发中,生产者有众多参数可供配置。请列举出至少5个常见的生产者参数,并简要说明每个参数的作用以及针对提升性能方面如何进行初步优化。
19.1万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试
参数名称作用性能优化初步建议
bootstrap.servers指定Kafka集群的地址列表,用于生产者连接Kafka集群。配置多个broker地址,确保高可用,避免单点故障。
key.serializer、value.serializer将生产者发送的键值对转换为字节数组,方便在网络上传输。选择高效的序列化器,如AvroSerializer,提高序列化效率。
acks指定生产者在确认消息已成功发送到Kafka集群之前需要等待的响应级别。若追求高吞吐量且可接受少量数据丢失风险,可设置为1;若要求数据不丢失,设置为all。
batch.size指定生产者在将消息批量发送到Kafka之前,缓存消息的最大字节数。适当增大此值,提高批量发送的消息数量,但不宜过大,避免内存占用过多。
linger.ms指定生产者在发送缓冲区满之前,等待更多消息到达的时间。适当增加此值,可使更多消息累积成更大的批次发送,但增加延迟,需权衡。
compression.type指定生产者对消息进行压缩的算法,如gzip、snappy、lz4等。选择合适的压缩算法,在CPU和带宽之间平衡,如snappy在高吞吐量场景下性能较好。