本文不是停留在字面上去总结Storm的流分组方式,而是列出Storm流分组实现的源码位置,看了源码,对各种流分组也就可以做到知其所以然了。
各种流分组一览,源码位置
org.apache.storm.topology.InputDeclarer<T extends InputDeclarer>
读读这个接口的源码,Storm支持的所有流分组方式瞬间收入囊中。
1.shuffle grouping源码位置
org.apache.storm.grouping.ShuffleGrouping
2.fields grouping源码位置
org.apache.storm.trident.partition.IndexHashGrouping
3.global grouping源码位置
org.apache.storm.trident.partition.GlobalGrouping
4.local or shuffle grouping源码位置
org.apache.storm.grouping.LoadAwareShuffleGrouping
5.none grouping源码位置
org.apache.storm.testing.NGrouping
6.all grouping
源码位置我没找到,不过看了其他流分组方式的源码,这种分组方式的实现也就豁然开朗了。
7.direct grouping源码位置
org.apache.storm.trident.partition.IdentityGrouping
8.partial key grouping源码位置
org.apache.storm.grouping.PartialKeyGrouping
9.custom grouping
自定义分组,实现接口
org.apache.storm.grouping.CustomStreamGrouping
看了其他流分组方式的源码,你会发现所有流分组的实现类都实现了CustomStreamGrouping接口,因此,实现自定义流分组的方法也就一目了然了。
网友评论