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

如何处理在故障()的情况下Storm的重播引起的事件重复,从一个螺栓()

狄易安
2023-03-14

我有一个带有喷口S和3个螺栓-a、B、C的拓扑结构。

共有1个答案

归浩博
2023-03-14

Storm锚定功能只支持至少一次处理,不支持在失败情况下处理重复。根据您的应用程序语义,这可能是一个问题或不是问题。

例如,如果以后执行幂等操作,则不会出现重复(幂等操作的一个示例是更新键值存储--如果因为重复而执行两个put操作,则键值存储的状态仍然相同)。

如果你有非幂等的运算,重复是一个问题,你可以试着小心,如果这是你自己的--但这是很难得到正确的。

作为另一种选择,您可以使用Trident API而不是提供一次保证的低级API。

或者,作为最后的手段,使用一个不同的系统,它确实提供了一次即开即用的语义。

 类似资料:
  • Cadence是一个容错的有状态代码平台。cadence如何在各种故障情况下处理故障?

  • 我只是想知道,谁负责处理计算机中的数学溢出案例? 例如,在以下C代码中: 在我的机器上编译并运行这段代码得到了-32767的结果 “short”变量的大小为2字节。。我们知道2个字节可以容纳32767的最大十进制值(如果有符号的话)。。所以当我把32768分配给x。。超过其最大值32767。。它开始从-32767再次计数到32767,以此类推。。在这种情况下,到底发生了什么,所以给出了-32767

  • 我有一个java 1.6应用程序,使用jdbc驱动程序在Oracle数据库中使用批插入插入来插入记录。正如您所知,在Statement对象上有一个名为executeBatch()的方法,我们用于批量更新。它有一个int数组的返回类型,其中包含每个记录的执行结果。但它也会在出错时抛出BatchUpdateException,我们也可以从中得到结果int数组。我的问题是,在什么样的错误情况下,我应该期

  • 问题内容: 我正在尝试修复这段代码,该代码是从具有车牌号和车主列表(该格式)的哈希图进行打印的。我试图通过printOwners()仅打印出所有者;但是我不能不打印重复的东西。 我已经玩了一段时间,但似乎无法跳过重复项。 这是我的代码: 问题答案: 要删除重复项,请使用: 或者使用Java 8 和方法:

  • 这就是我可以在没有索引信息的情况下得到Seires的第一个元素的任何方法。 例如,我们有一个系列 打印主题: 如果不使用索引145,如何在这里获得146的值? 非常感谢你们