jstorm fieldsGrouping源碼分析

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相同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章