Advertisement

Kafka Consumer如何实现恰好一次/至少一次

阅读量:

目录

  • 消费端幂等性

    • 消费时出现几种异常情况

      • 自动提交
      • 手动提交
    • 精确一次消费实现

    • 总结

  • 至少消费一次

消费端幂等性

在Kafka系统中存在两种用于表示消费偏移量的方式,在每个分区中都会记录一个偏移量值以指示当前消费的位置。当消费者持续正常运行时,此时offset的作用已不明显;然而在特定情况下如消费者发生故障或新消费者加入时,则会触发再均衡过程(Rebalance),该过程中消费者会被重新分配至新的分区,并根据这些新的分区中的消费进度信息继续进行处理。需要注意的是,在这种情况下提交的偏移量信息会发挥重要作用:具体而言是指消费者组所有分区的累计偏移状态。为了实现对偏移量的有效控制,在某些场景下需要采用手动提交的方式来确保数据一致性

消费时出现几种异常情况

自动提交

  • 当系统已接收一批数据后, 随后立即触发offset提交流程. 当遇到故障或者有新消费者加入组导致需要重新均衡时, 此次提交未能成功. 因此导致此次提交未能成功. 结果是该批次的数据没有被正确记录下来, 后续会再次进行一次相同的操作.
    • 在业务运行较为复杂的情况下, 当相关业务流程尚未彻底完成时, 相应的offset信息已发送出去. 随后由于系统发生崩溃可能导致该批次的数

全部评论 (0)

还没有任何评论哟~