Ответ 1
Я не уверен, правильно ли я понимаю ваш вопрос - в моем понимании вы спрашиваете Is it possible [without the Shebolt hack] to use Storm [with Thrift as comm protocol] with C++-written bolts and with C++ as the language that creates the topology
.
Из-за отсутствия других ответов на этот вопрос и на основе моих собственных исследований я предполагаю, что для вашей проблемы нет готовой, пригодной для использования реализации.
Поэтому, если вам действительно нужно использовать Storm (его обычная usecase - это JVM, поэтому, даже если она теоретически может работать с любым языком, это не означает, что существует экосистема для других языков) и С++, у вас нет опции но использовать взломать Shebolt или модифицировать Thrift самостоятельно.
Как вы знаете, сама бережливость также была перенесена на С++. Поэтому можно перестроить вызовы API в С++. В принципе, вам нужно будет Java TopologyBuilder
. На стороне С++ вы можете запустить с учебником Thrift С++.
Это тоже своего рода хак, поскольку вы в основном просто перестраиваете половину стека (в данном случае ontop of Thrift), но в целом у вас очень мало других вариантов с системным дизайном, вроде Storm. Например, бинарный протокол MySQL был перестроен из-scr
Если кто-то не выполнил эту работу для вас (что я бы полностью пропустил в своих исследованиях), я не вижу выбора, кроме как сделать это самостоятельно (может быть, даже буря не лучший инструмент для вашего использования!)
Если другой хак (который может быть еще более сложным и, возможно, даже медленнее), кроме ShellBolt, достаточно хорош для вас, вы можете попробовать запустить JVM изнутри С++, например. см. это сообщение SO. Я бы не рекомендовал это.
Если вам нужна альтернативная распределенная очередь задач, у меня был хороший опыт работы с Celery в среде Python, однако я не имею никакого опыта в ее использовании на С++ напрямую (я обычно управляю Python с помощью ZeroMQ или пишу собственные очереди на основе ZeroMQ где это необходимо, но это не универсальное решение).