Thrift–实现NodeJS和Java间通信
Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的远程服务调用的框架。
它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生成引擎可以在多种语言中,如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk 等创建高效的、无缝的服务,其传输数据采用二进制格式,相对 XML 和 JSON 体积更小,对于高并发、大数据量和多语言的环境更有优势。
安装
nodejs(ver5.6.0)安装npm install thrift --save
Java(ver1.8.0)需要根据操作系统下载编译,window可直接下载使用:http://thrift.apache.org/download
使用
1.定义接口
声明RPC接口
namespace java service.demo
service Hello{
string helloString(1:string para)
}
通过thrift生成底层通信实现
#在当前目录下生成gen-java目录,里面有Hello.java
thrift -r -gen java Hello.thrift
#在当前目录下生成gen-nodejs目录,里面有Hello.js、Hello_types.js
thrift --gen js:node Hello.thrift
2.NodeJS实现
NodeJS服务端
var thrift = require("thrift");
var Hello = require('./Hello.js');
//RPC接口