# CommitFailedExceptionn
* i.e. Consumer 客户端在提交 offset 时出现了错误或异常,而且是不可恢复的严重异常。
注释
> Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that the time between subsequent calls to poll() was longer than the configured max.poll.interval.ms, which typically implies that the poll loop is spending too much time message processing. You can address this either by increasing max.poll.interval.ms or by reducing the maximum size of batches returned in poll() with max.poll.records.
问题
* 由于开启 Rebalance,本实例将要提交 offset 的分区分配给了其他 Instance
* 出现问题的原因:消费者实例连续两次调用 poll 时间间隔过长
* 通常表明,Consumer Instance 花费太长时间进行消息处理
解决办法
* 增加期望的时间间隔 `max.poll.interval.ms`
* 减少 poll 方法一次性返回的消息数量,i.e. max.poll.records
## 异常抛出场景
* 手动提交 offset 时,i.e. 显式调用 KafkaConsumer.commitSync()
### 场景一
* 消息处理的总时间超过预设的 `max.poll.interval.ms`
```
…
Properties props = new Properties();
…
props.put("max.poll.interval.ms", 5000);
consumer.subscribe(Arrays.asList("test-topic"));
while (true) {
ConsumerRecords<String, String> records =
consumer.poll(Duration.ofSeconds(1));
// 使用Thread.sleep模拟真实的消息处理逻辑
Thread.sleep(6000L);
consumer.commitSync();
}
```
解决方法
* 简化消息处理逻辑
* 缩短单条消息处理时间
* 增加 Consumer 端允许下游系统消费一批消息的最大时长
* i.e. max.poll.interval.ms
* 减少下游系统一次性消费的消息总数
* i.e. max.poll.records
* 下游系统使用多线程加速消费
* 多线程间如何处理 offset 提交有难度
### 场景二
* 如果应用中同时出现了相同 GroupID 的消费者组和 Standalone Consumer
* 当独立消费者手动提交 offset 时,会抛出此异常
- 概览
- 入门
- 1. 消息引擎系统
- 2. Kafka 术语
- 3. 分布式流处理平台
- 4. Kafka “发行版”
- 5. Kafka 版本号
- 基本使用
- 6. 生产集群部署
- 7. 集群参数配置
- 客户端实践与原理
- 9. Consumer 分区机制
- 10. Consumer 压缩算法
- 11. 无消息丢失配置
- 12. 客户端高级功能
- 13. Producer 管理 TCP
- 14. 幂等生产者和事务生产者
- 15. 消费者组
- 16. 位移主题
- 17. 消费者组重平衡(TODO)
- 18. 位移提交
- 19. CommitFailedException
- 20. 多线程开发者实例
- 21. Consumer 管理 TCP
- 22. 消费者组消费进度监控
- Kafka 内核
- 23. 副本机制
- 24. 请求处理
- 25. Rebalance 全流程
- 26. Kafka 控制器
- 27. 高水位和 Leader Epoch
- 管理与监控
- 28. Topic 管理
- 29. Kafka 动态配置
- 30. 重设消费者组位移
- 31. 工具脚本
- 32. KafkaAdminClient
- 33. 认证机制
- 34. 云下授权
- 35. 跨集群备份 MirrorMaker
- 36. 监控 Kafka
- 37. Kafka 监控框架
- 38. 调优 Kafka
- 39. 实时日志流处理平台
- 流处理
- 40. Kafka Streams
- 41. Kafka Streams DSL
- 42. Kafka Streams 金融
- Q&A