我是Storm的初学者,我想知道如果最多一次处理对我有用,我是应该使用BaseRichBolt
还是BaseBasicBolt
?
据我所知,BaseBasicBolt
元组会被自动锚定并确认,如果是BaseRichBolt
,我们必须自己做。{1}}这是否意味着如果我想要最多一次处理,我应该使用BaseRichBolt
?
我的逻辑是锚定和执行不会使事情变慢,我是对的吗?
答案 0 :(得分:2)
为了在Storm中启用容错功能,Spouts需要将消息ID分配给它们发出的元组。只要没有分配消息ID,acking和锚定就没有效果。
因此,BaseBasicBolt
的开销很小,您无法衡量任何性能差异。当然,使用BaseRichBolt
可以避免这种微小的开销。
答案 1 :(得分:2)
如果您不担心数据丢失,您可以使用BaseRichBolt,但如果您想保证消息处理,那么您需要使用BaseBasicBolt.In风暴三种类型的消息处理至少一次,恰好一次,最多一次。 有用的链接:https://bryantsai.com/fault-tolerant-message-processing-in-storm/