Thrift 的各项传输协议和Socket方式及各种Server的特性

 
Thrift 的各项传输协议和Socket方式及各种Server的特性
(1).支持的传输格式
TBinaryProtocol   二进制格式
TCompactProtocol  压缩格式
TJSONProtocol     JSON格式
TSimpleJSONProtocol 提供JSON只写协议,生成的文件很容易通过脚本语言解析
TDebugProtocol     使用易懂的可读的文本格式以便于debug
(2). 支持的数据传输方式
TSocket     阻塞式socket
THttpTransport 采用HTTP传输协议进行数据传输
TFramedTransport 以frame为单位传输,非阻塞式服务中使用
TFileTransport 以文件形式进行传输
TMemoryTransport 将内存用于I/0,
TZlibTransport 使用zlib进行压缩。
TBufferedTransport 对某个transport对象操作的数据进行buffer,即从buffer中读取数据进行传输,或将数据直接写入到buffer
(3). 支持的服务模型[主要是服务端类型]
TSimpleServer 简单的单线程服务模型,常用于测试
TThreadedServer 多线程服务模型使用标准的阻塞式IO,每个请求创建一个线程
TThreadPoolServer 多线程服务模型使用标准的阻塞式IO,预先创建一组线程处理请求
TNonblockingServer 多线程服务模型使用非阻塞IO(需要用TFramedTransport数据传输方式 )
ps:什么叫阻塞与非阻塞?
阻塞IO:socket的阻塞意味着必须要做完IO包括错误才会返回
非阻塞IO:无论操作是否完成都会立刻返回,需要通过其他方式来判断具体操作是否成功
在网络阻塞严重的时候,网络层没有足够的内存来进行写操作,这时候就会出现写不成功的情况,阻塞情况下会尽可能(有可能被中断)等待到数据全部发送完毕, 对于非阻塞的情况就是一次写多少算多少,没有中断的情况下也还是会出现write 到一部分的情况.

转载于:https://my.oschina.net/abcijkxyz/blog/722541

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值