以下消费者参数支持自定义配置,但我们建议优先使用默认值。如需调整,请务必谨慎评估影响,避免因配置不当引发消费异常或性能问题。
常见消费参数概览
以下是一些常见的消费参数。
偏移量管理相关参数
参数名称 | 默认值 | 说明 |
auto.offset.reset | latest | earliest:自动重置为最早偏移量。 latest:自动重置为最新偏移量。 |
enable.auto.commit | true | 如果为 true,消费者的偏移量将在后台定期提交。 |
auto.commit.interval.ms | 5000 (毫秒) | 如果 enable.auto.commit 设为 true,消费者偏移量自动提交的频率(毫秒)。 |
性能调整相关参数
警告:
建议您使用默认值即可,请您谨慎调整以下参数。调整不当会导致数据积压、冗余请求等问题。
参数名称 | 默认值 | 说明 |
fetch.max.wait.ms | 500(毫秒) | 消费者在拉取消息时的最大等待时间 |
fetch.min.bytes | 1MB | 服务器为单次请求返回的最大数据量,如果没有足够的数据,则请求会等待。 |
fetch.max.bytes | 50MB | 服务器为单次请求返回的最大数据量。 过小(如1M):每次拉取的数据量少,需要更多次请求才能获取足够数据,增加了服务端的会话次数。 过大(如50M+):可能超过客户端处理能力,导致处理超时,消费积压、极端情况下会高频地向服务端请求同一批数据,导致您的计量计费增长。 |
request.timeout.ms | 30000 (毫秒) | 单次请求超时时间。与 fetch.max.bytes 配合使用。 过短(如5s):可能导致批处理未达到 fetch.max.bytes 就返回,降低处理效率。 过长(如60s):会增加消息处理延迟。 |
max.poll.records | 5000 (个) | 单次 poll() 调用返回的最大记录数。 |
session.timeout.ms | 10000(毫秒) | 消费者与 Kafka 服务器会话的超时时间(毫秒)。 |
heartbeat.interval.ms | 3000(毫秒) | 消费者发送心跳的间隔时间(毫秒)。 |
故障恢复相关参数
参数名称 | 默认值 | 说明 |
reconnect.backoff.ms | 50(毫秒) | 重新连接到服务器的初始退避时间(毫秒)。 |
retry.backoff.ms | 100(毫秒) | 重试失败请求前的等待时间(毫秒)。 |
max.poll.interval.ms | 120000(毫秒) | 两次 poll() 调用之间的最大允许间隔。如果超出此时间,消费者会被认为失败并触发重新平衡。 |
调整参数的验证方法
如果该指标的值越来越大,说明您的消费端参数不合理,需要重新调整。
如果该指标较小(小于3秒)且保持不变,那么是正常的。
消费延迟的含义:消费速度比起生产速度而言,存在滞后,会造成数据积压。建议:
为每个消费分区配置一个消费者,用于增加消费端的能力。
fetch.max.bytes 配置得不要太大,用于减少服务端返回的数据。