None Grouping、Direct Grouping 和LocalOrShuffle Grouping 最不常用三种分组
None Grouping: 不关注并行处理负载均衡策略时使用该方式,目前等同于Shuffle Grouping,另外Storm将会把bolt任务和他的上游提供数据的任务安排在同一个线程下。
Direct Grouping:由Tuple的发射单元直接决定Tuple将发射给那个Bolt,一般情况下是由接收Tuple的Bolt决定接收哪个Bolt发射的Tuple。这是一种比较特别的分组方法,用这种分组意味着消息的发送者指定由消息接收者的哪个task处理这个消息。
只有被声明为Direct Stream的消息流可以声明这种分组方法。而且这种消息Tuple必须使用emitDirect方法来发射。
消息处理者可以通过TopologyContext来获取处理它的消息的taskid (OutputCollector.emit方法也会返回taskid)
LocalOrShuffle Grouping:如果目标Bolt在同一工作进程存在一个或多个任务,元组会随机分配给这些任务。否则,该分组方式与随机分组方式是一样的。
Storm分组策略解析

本文介绍了Storm中三种较少使用的分组策略:NoneGrouping、DirectGrouping和LocalOrShuffleGrouping。NoneGrouping用于不关注负载均衡的情况;DirectGrouping允许Tuple发射单元直接决定Tuple的接收者;LocalOrShuffleGrouping则会尝试将数据本地化处理或随机分发。
200

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



