在最多一次处理的情况下使用BaseRichBolt或BaseBasicBolt

时间:2015-10-01 10:06:20

标签: apache-storm

我是Storm的初学者,我想知道如果最多一次处理对我有用,我是应该使用BaseRichBolt还是BaseBasicBolt

据我所知,BaseBasicBolt元组会被自动锚定并确认,如果是BaseRichBolt,我们必须自己做。{1}}这是否意味着如果我想要最多一次处理,我应该使用BaseRichBolt

我的逻辑是锚定和执行不会使事情变慢,我是对的吗?

2 个答案:

答案 0 :(得分:2)

为了在Storm中启用容错功能,Spouts需要将消息ID分配给它们发出的元组。只要没有分配消息ID,acking和锚定就没有效果。

因此,BaseBasicBolt的开销很小,您无法衡量任何性能差异。当然,使用BaseRichBolt可以避免这种微小的开销。

答案 1 :(得分:2)

如果您不担心数据丢失,您可以使用BaseRichBolt,但如果您想保证消息处理,那么您需要使用BaseBasicBolt.In风暴三种类型的消息处理至少一次,恰好一次,最多一次。 有用的链接:https://bryantsai.com/fault-tolerant-message-processing-in-storm/