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 processorTProcessor tProcessor = new PersonService.Processor<PersonService.Iface>(new PersonServiceImpl());// step2 create a socketTServerSocket 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.