面试题答案
一键面试参数名称 | 作用 | 性能优化初步建议 |
---|---|---|
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在高吞吐量场景下性能较好。 |