Thrift 学习笔记 (2)

Google 开发的 Protobuf 会经常被拿来和 Thrift 比较,不过 Protobuf 主要提供序列化/反序列化的功能,而 Thrift 还提供了几个 server 模型,加上可以自动生成代码,大大简化了 RPC 的开发。

TSimpleServer

上一篇笔记 的 echo server 为例,一个使用 TSimpleServer 的服务端如下:

// This autogenerated skeleton file illustrates how to build a server.
// You should copy it to 

阅读全文…

Thrift 学习笔记 (1)

Thrift 是 Facebook 开发的一个二进制通信协议,现在托管在 Apache 基金会。它使用一种自定义的接口描述语言描述使用的数据结构和接口,通过编译可以生成各种语言的接口,如 c++,python,php 等。由于支持生成多种语言,Thrift 可以作为多种语言之间的通信接口,更详细的介绍见参考资料 [1]。

这里使用的 Thrift版本是 0.8.0。

一个简单的echo server

首先编写对应的数据结构和接口描述文件:

namespace cpp Test

service EchoServer {
    string echo(1: string msg);
}

使用下面的命令生成对应的 c++ 接口文件:

thrift --gen cpp echoapi.thrift

默认会生成一个“gen-cpp”的文件夹,里面包含下列文件:

echoapi_constants.cpp echoapi_constants.h echoapi_types.cpp echoapi_types.h EchoServer.cpp 

阅读全文…