trident 里面
batch 会被缓存, 这样失败了可以重新发送
多个 batch 可以并行被 process, 但是 commit 是严格按照 txid 顺序来执行
一个 batch 的状态会存在 zk 里
只要 batch 在 timeout 时间内 commit 就算完成了, 应该同时会清缓存
如果异常或超时了, 就会 replay
在原声的 storm 中一个 tuple 和它衍生的 tuple 有没有被成功处理, 是通过一个异或机制来监控的, 如果被成功处理, 最后肯定会是 0
batch 也是类似的监控机制
一个 batch 也会衍生出一些 tuple, 也会通过 groupby, 来拆分进行 process
一个 tuple 完成时说, 它和它的衍生 tuple, 都 ack 成功了,
一个 batch 完成时说, batch 里的所有 tuple 都成功了, 这些 tuple 本身都是带 txid 标志的
一个 batch 中的多个 tuple 可能会被 shuffle 到多个 partition, 分别处理, 这个是没关系的
一个 window 内可能包含多个 batch, 他们会被一起处理
来源: http://www.bubuko.com/infodetail-2614965.html