jstorm fieldsGrouping是如何找到下一个emit的task节点呢,如何保证相同的值路由要相同的task?
在spout和bolt发射数据的时候都会调用
collector.emit(new Values(your data), msgId);
如果指定了fieldsGrouping,那么jstorm会根据emit的数据(your data)计算下一个要发送的task,
com.alibaba.jstorm.task.group.MkFieldsGrouper
可以debug到这里看下(这是我emit的数据,tuple.get(groupFieldIndex.get(0)) 拿到的就是(your data))
所以网上很多说fieldsGrouping能是相同的值路由到同一个task,前提是一定要保证你emit出来的数据value.hashcode相同