【问题标题】:Kafka-Python How to commit manually?Kafka-Python 如何手动提交?
【发布时间】:2019-08-27 00:41:15
【问题描述】:

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

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

【问题讨论】:

    标签: python-3.x apache-kafka kafka-consumer-api kafka-python


    【解决方案1】:

    这个逻辑是你必须在消费者的 kafka 之外解决的问题。 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,如果失败,您可以将其推回到主题中。

    【讨论】:

    • 这个答案是完全错误的,使用 at-most-once 数据有机会丢失
    猜你喜欢
    • 2017-09-10
    • 1970-01-01
    • 2021-04-06
    • 2018-02-07
    • 2016-09-04
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多