简单总结下自己看Storm中thrift相关源码的理解,请高手指正。
Thrift是一个支持多种程序语言开发的框架,其核心是Thrift编译器和Thrift Server。
Storm使用Thrift来支持兼容多语言开发,Nimbus其实就是一个thrift服务,topologies被定义为Thrift结构体.
Storm源码中貌似默认支持的是Java和Python,因为有看到genthrift.sh中生成了storm.thrift描述对应的Java和Python代码。
Storm的核心逻辑部分还是Clojure代码,其需要的部分数据结构和接口通过storm.thrift定义,从而可以通过多语言实现,并被多种语言调用生成Topology。底层最终传送的是序列化的数据(包括代码)。
不知道这点总结是否确切,以后会继续改进更新。