Kafka参数详情说明-拉取消息大小参数和异常重试
ps:Kafka消息队列不能消费某些分区问题 - 飞书云文档 (feishu.cn)
一、kafka 部分分区不能正常消费问题
1.1 broker 配置
1.2 Consumer 配置
二、特殊参数说明
GitHub Copilot: `max.partition.fetch.bytes`和`fetch.max.bytes`都是Kafka消费者的配置参数,但它们的含义略有不同。
`max.partition.fetch.bytes`参数指定了单个分区从Kafka服务器拉取的最大字节数。如果分区中的消息大小超过了这个值,消费者将只拉取`max.partition.fetch.bytes`大小的消息。这个参数的默认值是1MB。
`fetch.max.bytes`参数指定了单次拉取消息的最大字节数。如果拉取的消息大小超过了这个值,消费者将只拉取`fetch.max.bytes`大小的消息。这个参数的默认值是50MB。
因此,`max.partition.fetch.bytes`参数是针对单个分区的,而`fetch.max.bytes`参数是针对整个消费者的。如果您的消息大小超过了`max.partition.fetch.bytes`的值,那么您需要将`fetch.max.bytes`设置为更大的值,以确保消费者可以拉取到完整的消息。
以下是一个示例,展示了如何在Kafka的配置文件中设置`max.partition.fetch.bytes`和`fetch.max.bytes`参数的值:
```properties
# 设置max.partition.fetch.bytes参数的值为2MB
max.partition.fetch.bytes=2097152
# 设置fetch.max.bytes参数的值为100MB
fetch.max.bytes=104857600
在这个示例中,我们将`max.partition.fetch.bytes`参数的值设置为`2097152`字节(即2MB),将`fetch.max.bytes`参数的值设置为`104857600`字节(即
100MB)。您可以根据自己的需求调整这些值。
三、消费重试说明
3.1 RocketMQ发送及消费重试机制
发送重试机制:
RocketMQ支持发送失败内部重试,默认是2次,在异步、SendOneWay模式下不支持重试。
消费重试机制:
RocketMQ在消费失败时,支持消费端重试继续消费消息,默认支持16次重试,每次重试的时间间隔增加,只有在Cluster模式支持重试、广播模式不支持重试。
在重试期间,消息的key和ID不会发生改变,应用程序可以以此做好幂等性控制。
在重试期间,还可以继续消费其它新消息
3.2 kafka 消费异常重试次数
我们作为Kafka者在使用Kafka是,必然考虑消息消费失败的重试次数,重试后仍然失败如何处理,要么阻塞,要么丢弃,或者保存
默认重试次数在哪里看
Kafka3.0 版本默认失败重试消费次数为10次,准确讲应该是1次正常调用+9次重试,这个在这个类可以看到 org.springframework.kafka.listener.SeekUtils
不同版本关注客户端参数:如果配置了max-attempts为10,