storm实现迷你批量提交

storm中有种应用场景,是迷你批量,比如积攒一定数量的tuple,超过一定时间或者数量之后,把这些tuple统一处理.
想到了以下三种思路
1 在bolt中额外启动一个线程.不过在bolt中启动线程就要考虑并发的问题
2 定义另一个command stream,根据需要向这个command stream发tuple.bolt根据tuple的sourceStreamId判断是正常的stream
还是command stream.
这样需要在建立拓扑时有一些额外操作,比如为command stream建立一个spout,每个bolt用allGrouping从command stream的spout来接收命令
3 如果只是单纯想获得定时tick,可以设置Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS,这样bolt就会在指定的间隔下收到特定的tuple

猜你喜欢

转载自kabike.iteye.com/blog/2231700