• Storm 消息分发策略


    1、Shuffle Grouping:随机分组,随机派发stream里面的tuple,保证每个bolt接收到的tuple数目相同。
    2、Fields Grouping:按字段分组,比如按userid来分组,具有同样userid的tuple会被分到相同的Bolts,而不同的userid则会被分配到不同的Bolts。
    3、All Grouping:广播发送,对于每一个tuple,所有的Bolts都会收到。
    4、Global Grouping: 全局分组,这个tuple被分配到storm中的一个bolt的其中一个task。再具体一点就是分配给id值最低的那个task。
    5、Non Grouping:不分组,这个分组的意思是说stream不关心到底谁会收到它的tuple。目前这种分组和Shuffle grouping是一样的效果,有一点不同的是storm会把这个bolt放到这个bolt的订阅者同一个线程里面去执行。
    6、Direct Grouping:直接分组, 这是一种比较特别的分组方法,用这种分组意味着消息的发送者指定由消息接收者的哪个task处理这个消息。只有被声明为Direct Stream的消息流可以声明这种分组方法。而且这种消息tuple必须使用emitDirect方法来发射。消息处理者可以通       过TopologyContext来获取处理它的消息的taskid (OutputCollector.emit方法也会返回taskid)
    7、Local or shuffle grouping:如果目标bolt有一个或者多个task在同一个工作进程中,tuple将会被随机发生给这些tasks。否则,和普通的Shuffle Grouping行为一致。

  • 相关阅读:
    大三寒假学习进度笔记(十三)
    大三寒假学习进度笔记(十二)
    大三寒假学习进度笔记(十一)
    大三寒假学习进度笔记(十)
    大三寒假学习进度笔记(九)
    汇编第五章作业
    小饼日记2020/12/6
    小饼日记2020/12/2
    *reverse*练习10--很简单的重邮杯预赛
    记录一个牛逼的计算机组成原理老师
  • 原文地址:https://www.cnblogs.com/zhaoyan001/p/7975618.html
Copyright © 2020-2023  润新知