首页 > 解决方案 > Kafka-Python 如何手动提交?

问题描述

我对 Kafka 还很陌生,刚开始使用 Python,所以请原谅我的错误用语,我将尝试解释我的要点。

我有一个 Kafka 队列,我的主题是在其中生成的。现在这些主题将保存一个订单列表,并由消费者提取来处理。我的要求是,如果一个主题内有多个订单,则只有在前一个订单成功时才处理后续订单,如果订单失败我希望它重试。也可以手动处理多个主题的订单。因此,在阅读文档时,我找到了提交偏移量的概念,我不确定这是否对我有帮助,我无法将它们拼凑在一起。有人可以帮我弄这个吗?

标签: python-3.xapache-kafkakafka-consumer-apikafka-python

解决方案


这个逻辑是你必须在消费者的卡夫卡之外解决的问题。Kafka 提供了一些场景:At-Most-Once、At-Least-Once、Exactly-Once

https://dzone.com/articles/kafka-clients-at-most-once-at-least-once-exactly-o

但是看起来你有一个同步订单处理系统,你会失去一些使用 Kafka 的好处。您可以尝试 At-Most-Once,如果失败,您可以将其推回到主题中。


推荐阅读