backtype.storm & org.apache.storm & com.twitter.heron 包中的 类 之间的区别
differences between classes in backtype.storm & org.apache.storm & com.twitter.heron packages
我想为 apache heron 编写一些自定义调度程序,我正在深入研究源代码。我注意到在 heron 源代码中有几个包具有相似的 classes。例如,backtype.storm
和 org.apache.storm
中的大多数 class 是相似的(完全相似以至于内部代码相同)。这两个包之间也有一些类似的classes和com.twitter.heron
(例如com.twitter.heron.api.tuple.Fields
),但其中一些内部代码不同(例如Fields class)。我知道在编写拓扑时,我们可以导入我们想要的每个包,我们可以在其中任何一个之间进行选择,但我很好奇它们之间的区别以及它们为什么将所有这些包放在一起。并没有合并它们?如果 storm classes 是编写拓扑的唯一选择,那么 com.twitter.heron
包中的 classes 有什么用?
我知道 heron 被设计成与 storm 完全向后兼容,这可能是因为向后兼容问题,但我不得不承认这让我很困惑,因为我需要编写自己的代码在这些 classes 中,我不知道如何选择哪个,哪个是开发人员不断开发和维护的,我应该选择它们作为修改的候选者。
提前致谢。
根据开发团队在here中的描述:
Use of heron api classes is not recommended - since we might change them frequently. They are meant for internal usage only.
backtype.storm is if your application wants to use pre-storm 1.0.0. For post 1.0.0 applications, you should use org.apache.storm
我想为 apache heron 编写一些自定义调度程序,我正在深入研究源代码。我注意到在 heron 源代码中有几个包具有相似的 classes。例如,backtype.storm
和 org.apache.storm
中的大多数 class 是相似的(完全相似以至于内部代码相同)。这两个包之间也有一些类似的classes和com.twitter.heron
(例如com.twitter.heron.api.tuple.Fields
),但其中一些内部代码不同(例如Fields class)。我知道在编写拓扑时,我们可以导入我们想要的每个包,我们可以在其中任何一个之间进行选择,但我很好奇它们之间的区别以及它们为什么将所有这些包放在一起。并没有合并它们?如果 storm classes 是编写拓扑的唯一选择,那么 com.twitter.heron
包中的 classes 有什么用?
我知道 heron 被设计成与 storm 完全向后兼容,这可能是因为向后兼容问题,但我不得不承认这让我很困惑,因为我需要编写自己的代码在这些 classes 中,我不知道如何选择哪个,哪个是开发人员不断开发和维护的,我应该选择它们作为修改的候选者。
提前致谢。
根据开发团队在here中的描述:
Use of heron api classes is not recommended - since we might change them frequently. They are meant for internal usage only.
backtype.storm is if your application wants to use pre-storm 1.0.0. For post 1.0.0 applications, you should use org.apache.storm