假设我有一个Apache Storm拓扑处理一些元组。我确认了其中大多数,但有时由于错误而未处理,因此未确认。
这些“丢失的”元组会怎样? Storm是否会自动使它们失败,还是应该每次都明确地使它们失败?
答案 0 :(得分:1)
来自Storm的文档:
http://storm.apache.org/releases/1.2.2/Guaranteeing-message-processing.html
通过显式地使元组失败,与等待元组超时相比,可以更快速地重放出水嘴元组。 (默认为30秒)
您处理的每个元组都必须被确认或失败。 Storm使用内存来跟踪每个元组,因此,如果您不对每个元组进行确认/失败,则该任务最终将耗尽内存。
答案 1 :(得分:1)
这些“丢失的”元组会怎样?暴风雨会使他们失败吗 自动
是的,在元组超时后,storm自动使它们失败。但最好是明确地这样做。