Взято из здесь: Storm с самого начала разрабатывался для совместимости с несколькими языками. Nimbus — это сервис Thrift, а топологии определяются как структуры Thrift. Использование Thrift позволяет использовать Storm на любом языке.
Я вижу, что топология, созданная в java, развертывается путем сериализации топологии (носики, болты, ComponentCommon) как типы данных Thrift, а затем развертывается на Nimbus. В Java легко сериализовать объект с его методами и данными. Так что, с другой стороны, Nimbus просто нужно создавать объекты и вызывать их. (может быть, здесь я упускаю детали, но надеюсь, что правильно понял)
Но мне интересно, как написать топологию на C++ и развернуть ее таким же образом. Помогает ли бережливость сериализовать топологию на основе С++, а Nimbus развертывает/выполняет топологию так же, как для Java?
Я видел ссылки link1 link2 в этом отношении, и кажется, что единственным решением является использование Shelbolt. который вызывает процесс и взаимодействует с ним через стандартный ввод-вывод.
Чтобы использовать метод Thrift, нужно ли нам переписывать ядро storm также на C++? Также зачем использовать Thrift, если он поддерживает только языки JVM? Похоже, что Thrift вообще не используется для таких языков, как python/c++.