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
想到了以下三种思路
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

本文探讨了Storm中的一种应用场景——迷你批量处理,通过在Bolt中启动额外线程、定义CommandStream或设置定时tick来实现批量处理逻辑,旨在提高处理效率。
5475

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



