【问题标题】:Does same Storm spout receive acked/failed message in parallel同一个 Storm spout 是否并行接收 acked/failed 消息
【发布时间】:2015-12-01 02:14:15
【问题描述】:

我的 Storm Spout 包含一个 Map<Object, Foo> 的消息 Id 对象及其对应的 Foo 我正在发射的对象。每次 spout 处理 nextTuple() 中的消息时,都会将带有 Foo 对象的消息 Id 添加到映射中。当在 Spout 中调用失败时,我使用消息 Id 对象从映射中检索 Foo 对象并重播消息(保证消息处理)。确认后,我从地图中删除了消息。

这适用于 spout 的单个实例。我正在尝试验证如果我并行化 Spout 是否会起作用,即消息是否总是被发出它的 spout 确认/失败,或者 spout 的另一个实例是否可以接收 ack/fail 调用?

【问题讨论】:

    标签: java parallel-processing apache-storm


    【解决方案1】:

    如果我正确解释了 Storm 的 guaranteed message processing 文档,那么发出元组的 Spout 将始终收到 ack/fail 调用:

    “请注意,一个元组将被创建它的完全相同的 Spout 任务确认或失败。因此,如果一个 Spout 在集群中执行尽可能多的任务,则元组不会被其他任务确认或失败创造它的人。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 2017-02-23
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      相关资源
      最近更新 更多