python-3.x - Kafka-Python 如何手动提交?
问题描述
我对 Kafka 还很陌生,刚开始使用 Python,所以请原谅我的错误用语,我将尝试解释我的要点。
我有一个 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,如果失败,您可以将其推回到主题中。
推荐阅读
- java - 为什么看似明确的类型提示构造函数调用存在“没有匹配的 ctor”?
- php - Bootstrap 4.3.1 模态不工作
- java - 从 SQLite 数据库中检索图像(BLOB 数据类型)
- python - 如何删除我的不和谐机器人在特定频道中发送的先前消息?
- javascript - 资产文件未在 Shopify 上加载
- php - Symfony 5 - 如何从一对一关系向表单添加字段?
- node.js - Node js Express 多次执行单个调用
- python - 警告:此运行时之前已导入以下包:[PIL] 您必须重新启动运行时才能使用新安装的版本
- jquery - 如何在选择复选框、单选按钮等时执行事件
- python - 尝试使用带有并发期货的等待来附加到数据帧并在大约 90% 的时间里得到一个关键错误