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

ApacheStorm中何时调用喷口中的“ack”方法?

蓬思博
2023-03-14

我有一个用两个螺栓处理文档的拓扑结构。我需要能够在文档被完全处理/通过整个拓扑结构后修改存储在喷口中的数据结构。在进一步了解ApacheStorm之前,我相信在spout中实现的“ack”方法只在拓扑的末尾被调用。我现在明白了,在每一个插销中都需要调用“ack”,我感到困惑。

本质上,如果我把自定义代码放在spout中的ack方法中:什么时候执行?每当'ack'方法被调用在一个螺栓或当整个元组树已被堆叠/一次每元组发出每喷口?

共有1个答案

戚浩淼
2023-03-14

只有在元组被下游的所有螺栓确认之后,才调用spoot中的ack方法,而不是之前。看这里。这意味着您的代码将在整个元组树中对元组进行确认时执行。

 类似资料:
  • 我想知道是否有任何Kafka喷口支持安全的Kafka经纪人。apache storm的KafkaSpout不支持SSL Kafka。 下面提到的Kafka不接受SSL Kafka生产者/消费者支持的任何参数。 请让我知道有没有任何方法,我们可以实现安全的Kafka消息流处理与Storm拓扑。

  • 这里可能发生了同样的事情:错误backtype.storm.util-Async循环死亡!BufferUnderFlowException:null,但我将添加一个完整的堆栈跟踪和一些更多的上下文。 Storm版本-9.3 Storm-Kafka版本-9.3 Kafka版本-0.8.2-beta 堆栈跟踪: Spout代码(注意,出于调试目的,我使用的是一个静态定义的分区映射,只有一个代理):

  • 我最近开始在一个项目中使用MapStruct映射工具。过去,为了映射DTO->实体,反之亦然,我使用自定义映射器,例如: 在尝试获取一个可选对象时,我可以通过以下方式将实体映射到dto: 目前,正如我之前提到的,我使用的是mapStruct,问题是我的映射器是这样的,而不是类,它是这样的接口: 我想知道是否可以在stream gentle中使用这个接口方法来映射我的值,而不需要包装值,比如: 谢谢

  • 我有一个Storm喷口,可以从日志文件中读取。因此,当我在本地测试代码时,它工作得很好,因为我在运行作业时传递了运行时参数。 因此,如果有任何想法如何让它进行,这将是一个很大的帮助。

  • 我将Spring和Spring Kafka用于一个批处理服务,该服务从Kafka收集数据,直到满足某些条件,然后转储数据。 我想在数据离开我的服务时确认提交,但它可能会在内存中停留5-10分钟。 是否有任何其他方法来确认/提交来自Spring Kafka的偏移量,只给出分区/偏移量信息?