0
点赞
收藏
分享

微信扫一扫

CommitFailedException异常处理和预防

老榆 2022-04-18 阅读 33

CommitFailedException异常处理和预防





当然

1.常见场景 max.poll.interval.ms超时

当消息处理的总时间超过预设的max.poll.interval.ms 参数就会发生CommitFailedException异常
比如

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();
}

1.1解决方案

2.特殊场景 StandaloneConsumer独立消费者和消费者组同时使用

如果你的应用中同时出现了设置相同 group.id 值的消费者组程序和独立消费者程序,那么当独立消费者程序手动提交位移时,Kafka 就会立即抛出CommitFailedException 异常因为 Kafka 无法识别这个具有相同 group.id 的消费者实例,于是就向它返回一个错误,表明它不是消费者组内合法的成员。

并且以上四种的解决方案都是无效的,当如果出现独立消费者可以往这个角度思考。






如有错误欢迎指正

举报

相关推荐

0 条评论