从这里开始:Storm 从一开始就被设计为兼容多种语言。Nimbus 是一个 Thrift 服务,拓扑被定义为 Thrift 结构。Thrift 的使用允许从任何语言使用 Storm。
我看到通过将拓扑(spouts、bolts、ComponentCommon)序列化为 Thrift 数据类型来部署在 java 中创建的拓扑,然后部署在 Nimbus 上。在 Java 中,很容易序列化对象及其方法和数据。所以另一方面 Nimbus 只需要创建对象并调用它们。(我可能在这里遗漏了细节,但我希望我理解正确)
但我想知道如何用 C++ 编写拓扑并以相同的方式部署它。thrift 是否有助于序列化基于 c++ 的拓扑,并且 Nimbus 以与 Java 相同的方式部署/执行拓扑?
在这方面,我已经看到了链接link1 link2,唯一的解决方案似乎是使用 Shelbolt。它调用进程并通过标准 i/o 与它通信。
为了使用 Thrift 方式,我们是否需要在 C++ 中也重写storm core?另外,当 Thrift 仅支持 JVM 语言时,为什么还要使用它?Thrift 似乎根本不用于 python/c++ 等语言。