构建可靠拓扑:Storm 中的消息处理保障
1. 消息处理流程概述
在消息处理过程中,当 AuthorizeCreditCard 螺栓(bolt)发出一个元组(tuple)后,该元组会传递到 ProcessedOrderNotification 螺栓。此螺栓不发出新的元组,因此元组树不会增加新节点,但需要确认输入元组,告知 Storm 该螺栓已完成处理。完成确认后,该元组即被视为完全处理。
接下来,我们将探讨在螺栓中进行锚定(anchoring)、确认(acking)和失败处理(failing)所需的代码,同时讨论元组失败的情况以及需要关注的各类错误。
2. 螺栓中的锚定、确认和失败处理
在螺栓中实现元组的锚定、确认和失败处理有两种方式:隐式和显式。
2.1 隐式锚定、确认和失败处理
在实现中,所有螺栓都继承了 BaseBasicBolt 抽象类。使用 BaseBasicBolt 作为基类的好处是它会自动为我们提供锚定和确认功能。具体如下:
- 锚定 :在 BaseBasicBolt 实现的 execute() 方法中,发出一个元组传递给下一个螺栓时, BasicOutputCollector 会将输出元组锚定到输入元组。例如在 AuthorizeCreditCard 螺栓中,发出订单元组时会自动锚定到传入的订单元组:
超级会员免费看
订阅专栏 解锁全文
517

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



