1. Thrift传输格式
- TBinaryProtocol一二进 制格式
- TCompactProtocol -压缩 格式
- TJSONProtocol - JSON格式
- TSimpleJSONProtocol提 供JSON只写协议, 生成的文件很容易通过脚本语言解析。
- TDebugProtocol -使用易懂的可读的文本格式,以便于debug
2. Thrift数据传输方式
- TSocket -阻塞式socket
- TFramedTransport -以frame为单位进行传输,非阻塞式服务中使用。
- TFileTiansport -以文件形式进行传输。
- TMemoryTransport -将内存用于I/O. Java实现时内部实际使用了简单的ByteArrayOutputStream.
- TZibTransport -使用zlib进行压缩,与 其他传输方式联合使用。当前无Java实现。
3. Thrift支持的服务模型
- TSimpleServer -简单的单线程服务模型,常用于测试
- ThreadPoolServer -多线程服务模型,使用标准的阻塞式IO。
- TNonblockingServer-多线程服务模型,使用非阻塞式I0 (需使用TFramedTransport数据传输方式)
- THsHaServer-THsHa引入了线程池去处理,其模型把读写任务放到线程池去处理; Half-sync/Half-async的 处理模式,Half-aysnc是在处理I0 事件上(accept/read/write io), Half-sync用于handler对rpc的同步处理