数据传输协议protocol
TBinaryProtocol 二进制格式
TCompactProtocol 压缩格式
TJSONProtocol JSON格式
TSimpleJSONProtocol JSON只写协议
client和server的数据传输协议必须一致。
Transport
TSocket 阻塞IO
TFramedTransport 非阻塞IO
TFileTransport
TMemoryTransport 内存IO
TZlibTransport 使用zlib压缩
服务模型
所有的server类都继承了TServer。处理请求的流程基本相同。
1. 获取client链接
2. 获取transport和protocol,包括inputTransport、outputTransport、inputProtocol、outputProtocol。
3. 获取processor
4. 处理请求
TSimpleServer
单线程处理请求,阻塞
TThreadPoolServer 线程池服务模型
多线程,使用标准的阻塞式IO,预先创建一组线程处理请求。
TNonblockingServer
多线程,使用非阻塞式IO,服务端和客户端使用TFramedTransport传输协议。
THsHaServer 半同步半异步服务模型
使用TFramedTransport传输协议。