构建可靠拓扑:Storm 中的消息处理机制
在实时数据处理中,确保消息的可靠处理至关重要。本文将深入探讨 Storm 中如何实现可靠的消息处理,包括元组的锚定、确认和失败处理,以及 Spout 在其中的关键作用。
1. 元组处理流程
当 AuthorizeCreditCard 螺栓发出一个元组后,它会流向 ProcessedOrderNotification 螺栓。这个螺栓不会发出新的元组,因此元组树不会增加新的元组。但我们需要确认输入的元组,告知 Storm 该螺栓已完成处理。此时,元组被视为已完全处理。
2. 螺栓中的元组锚定、确认和失败处理
在螺栓中实现元组的锚定、确认和失败处理有两种方式:隐式和显式。
2.1 隐式锚定、确认和失败处理
在我们的实现中,所有螺栓都继承了 BaseBasicBolt 抽象类。使用 BaseBasicBolt 作为基类的好处是它会自动为我们提供锚定和确认功能。具体实现如下:
- 锚定 :在 BaseBasicBolt 实现的 execute() 方法中,当发出一个元组时, BasicOutputCollector 会将输出元组锚定到输入元组。例如,在 AuthorizeCreditCard 螺栓中,发出的订单元组会自动锚定到传入的订单元组:
超级会员免费看
订阅专栏 解锁全文
921

被折叠的 条评论
为什么被折叠?



