当前位置: 首页 > 知识库问答 >
问题:

Storm KafkaSpout失败的元组重复

樊杰
2023-03-14

我使用的是Storm-kafka-1.1.1-plus和storm 1.1.1。并使用BaseRichBolt、一个KafkaSpout和两个bolts bolt-A、Bolt-B进行配置。元组被锚定在bolt-A中,一旦Bolt-B确认,它将被视为成功处理的元组,并将被提交。但是,问题是由于某种原因,一些失败的消息在KafKaspout中被复制了。

例如:

KafkaSpout在处理它时发出了1000个元组,由于某种原因,将近20个元组失败了(在bolt-B处)。这20个元组被连续地重播,在某个点上worker被杀死,supervisor重新启动worker,这20个元组再次被重播,这一次它成功地处理了,但它处理了多次(重复)。

共有1个答案

苏彦君
2023-03-14

禁用邮件超时可能会导致邮件丢失,如果需要处理所有邮件,您可能需要重新考虑禁用它。

Storm在启用加密时提供至少一次处理保证。你可能想看看你是否可以让你的螺栓是幂等的,这样回放就不会引起你的问题。或者,您可以查看https://storm.apache.org/releases/1.1.1/trident-tutorial.html,它提供一次状态更新。

编辑:您可能需要重新考虑您的问题。据我所知,没有一个流处理系统提供完全一次的处理,就像你想要的那样。

 类似资料:
  • 我正在编写一个解组器,我正在努力与jaxb进行斗争,以获得一个有效的解决方案。 我想解组从生成的MessageDescription。wsdl文件。wsdl文件中的java类是: 由于没有@XmlRootElement,我用包装器扩展了类,并自己添加了注释 我使用我的“包装器”MessageDescription类来解组 解组过程正在工作,但有一个子项始终设置为null。我不知道在哪里可以修复这个

  • 我在eclipse中配置了spring boot项目,在尝试运行它时遇到了下面的错误。请查看解决方案错误消息: 服务器是tomcat 9。我在网上检查了许多解决方案,但似乎没有解决这个问题。

  • 合并错误: 错误:属性元数据#android。支持VERSION@value值=(26.0.1)来自AndroidManifest。xml:23:13-35也出现在AndroidManifest上。xml:25:13-35 value=(26.1.0)。建议:在AndroidManifest的元素中添加“tools:replace=”android:value“。xml:21:9-24:15覆盖。

  • 这篇文章是关于前一个问题的解决方案: OptaPlanner-两个规划实体类的求解器配置问题 这是错误:

  • 问题内容: 在使用Swift4和Codable协议时,我遇到了以下问题-似乎没有办法允许跳过数组中的元素。例如,我有以下JSON: 和一个可 编码的 结构: 解码此json时 结果为空。这是可以预期的,因为JSON中的第二个对象没有键,而在struct中不是可选的。 问题是如何允许“跳过”无效对象? 问题答案: 一种选择是使用包装器类型,尝试对给定值进行解码。如果不成功,则存储: 然后,我们可以解