Различия между классами в пакетах backtype.storm & org.apache.storm & com.twitter.heron
Я хочу написать несколько пользовательских планировщиков для Apache Heron, и я немного углублюсь в исходный код. Я заметил, что в исходном коде heron есть пара пакетов с похожими классами. Например, большинство классов в backtype.storm
& org.apache.storm
похожи (точно так же, что внутри коды идентичны). Есть также несколько похожих классов между этими двумя пакетами и com.twitter.heron
(например com.twitter.heron.api.tuple.Fields
) но некоторые из них имеют другой код внутри (например, класс Fields). Я знаю, что при написании топологий мы можем импортировать каждый пакет, который нам нужен, и мы можем выбирать между любым из них, но мне интересно узнать о различиях между ними и о том, почему они собрали все эти пакеты вместе. и не объединить их? И если штормовые классы являются единственным выбором для написания топологий, что такое классы в com.twitter.heron
пакет хорош для?
Я знаю, что heron спроектирован так, чтобы быть полностью обратно совместимым со штормом, и это может быть связано с проблемой обратной совместимости, но я должен признать, что это сильно смутило меня, потому что мне нужно написать собственный код внутри этих классов, и я не знаю, как выбрать, какой из них, который постоянно разрабатывается и поддерживается разработчиками, и я должен выбрать их в качестве кандидатов на изменение.
Заранее спасибо.
1 ответ
На основании описания команды разработчиков здесь:
Использование классов heron api не рекомендуется, так как мы можем их часто менять. Они предназначены только для внутреннего использования.
backtype.storm - это если ваше приложение хочет использовать pre-storm 1.0.0. Для приложений после версии 1.0.0 вы должны использовать org.apache.storm