在Kafka配置中,有几个关键参数尤为重要,它们对Kafka的性能、可靠性和稳定性有着直接的影响。以下是一些必须关注的关键配置参数及其作用:
acks:指定了有多少个分区副本收到消息,生产者才认为消息发送成功。对消息丢失的可能性有重要影响。
acks=0
:生产者发送消息后,不会等待broker的响应,适用于允许消息丢失的场景,以提高吞吐量。acks=1
:只要broker集群的首领节点收到消息,生产者就会收到来自broker的成功响应,适用于不允许消息丢失的场景。acks=all
:只有当所有参与分区复制的节点都收到消息时,生产者才会收到来自broker的成功响应,适用于需要高可靠性的场景。buffer.memory:配置生产者内存缓冲区的大小,用于缓冲要发送到broker的消息。
compression.type:配置压缩算法,可以降低网络传输开销和存储开销,如snappy、gzip等。
retries:生产者从broker收到可重试的错误时,重试的次数。
batch.size:发送到同一个主题、同一个分区的消息,生产者会将其放到同一个批次中,此参数指定了一个批次可以使用的内存大小。
max.in.flight.requests.per.connection:此参数指定了生产者在收到broker响应之前可以发送多少个小希,值越高吞吐量越大但会占用越多的内存。
这些关键参数在不同的业务场景下可能需要不同的配置,因此在实际应用中需要根据具体需求进行调整和优化。