storm消息机制保证ack 原理
storm会有一个ackbolt 不断计算top 每个spout,bolt task的msgid ,来确认调用act 方法还是fail方法 ;
如下示列
1.如下图
1.spout 向ackbolt 报上去的 rootId=T1^T2
2.bolt1 向ackbolt 报上去的 rootId=T1^T3^T4^T5
3.bolt2 向ackbolt 报上去的rootId=T2
4.bolt3 向ackbolt 报上去的rootId=T3^T4^T5
actbolt 算出来的这条消息的结果是T1^T2^T1^T3^T4^T5^T2^T3^T4^T5 如果为0 则反回给spout 调用ack方法说明消息成功,否则调用fail方法