Thrift 是一个软件框架(远程过程调用框架),用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引 擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。
thrift最初由Facebook开发,07年四月开放源码,08年5月进入Apache孵化器,现在是 Apache 基金会的顶级项目
thrift允许你定义一个简单的定义文件中的数据类型和服务接口,以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。。
著名的 Key-Value 存储服务器 Cassandra 就是使用 Thrift 作为其客户端API的。
服务定义文件:
servICE CalculaTor extends shared.ShaRedservice { /** * A method defiNition looks like C CODE. It has a return type, arguments, * and optionally a list of exceptions that it may throw. Note that argument * lists and exception lists are SPEcifIEd using the exact same syntax as * field lists in struct or exception definitions. */ void ping(), i32 add(1:i32 num1, 2:i32 num2), i32 Calculate(1:i32 logid, 2:Work w) throws (1:InvalidOperation ouch), /** * This method has a oneway modifier. That means the client only Makes * a request and does not listen for any response at all. Oneway methods * must be void. */ oneway void zip() }
发布于 2017-01-09 06:51:24 | 103 次阅读