Kafka Consumer如何实现恰好一次/至少一次
发布时间
阅读量:
阅读量
目录
-
消费端幂等性
-
-
消费时出现几种异常情况
-
- 自动提交
- 手动提交
-
精确一次消费实现
-
总结
-
-
至少消费一次
消费端幂等性
在Kafka系统中存在两种用于表示消费偏移量的方式,在每个分区中都会记录一个偏移量值以指示当前消费的位置。当消费者持续正常运行时,此时offset的作用已不明显;然而在特定情况下如消费者发生故障或新消费者加入时,则会触发再均衡过程(Rebalance),该过程中消费者会被重新分配至新的分区,并根据这些新的分区中的消费进度信息继续进行处理。需要注意的是,在这种情况下提交的偏移量信息会发挥重要作用:具体而言是指消费者组所有分区的累计偏移状态。为了实现对偏移量的有效控制,在某些场景下需要采用手动提交的方式来确保数据一致性
消费时出现几种异常情况
自动提交
- 当系统已接收一批数据后, 随后立即触发offset提交流程. 当遇到故障或者有新消费者加入组导致需要重新均衡时, 此次提交未能成功. 因此导致此次提交未能成功. 结果是该批次的数据没有被正确记录下来, 后续会再次进行一次相同的操作.
- 在业务运行较为复杂的情况下, 当相关业务流程尚未彻底完成时, 相应的offset信息已发送出去. 随后由于系统发生崩溃可能导致该批次的数
全部评论 (0)
还没有任何评论哟~
