Thrift学习深入
https://zhuanlan.zhihu.com/p/22934974
https://zhuanlan.zhihu.com/p/26993406
从具体的demo入手,我们需要学习的是三部分
- IDL
- server端
- client端
一、IDL深入
IDL定义的通用类型有:
- 基础数据类型
- 结构体
- 容器
- list、set、map
- 异常:语法与结构体无异,不过用exception代替struct
- 服务:面向对象语言的接口
Thrift具体语法参考官方文档Thrift interface description language
二、通用的服务端/客户端编写
通用的server和client编写
public class ThriftServer {
public static void main(String[] args) throws TTransportException {
// step1 create a processor
TProcessor tProcessor = new PersonService.Processor<PersonService.Iface>(new PersonServiceImpl());
// step2 create a socket
TServerSocket listenSocket = new TServerSocket(9090);
// step3 create args and set args (processor, socket, protocol)
TServer.Args tArgs = new TServer.Args(listenSocket);
tArgs.processor(tProcessor);
tArgs.protocolFactory(new TBinaryProtocol.Factory());
// step4 create server and serve!
TServer server = new TSimpleServer(tArgs);
server.