Thrift协议与传输选择(thrift协议和http协议)

网友投稿 808 2022-10-12


Thrift协议与传输选择(thrift协议和http协议)

1 协议

Thrift 可以让用户选择客户端与服务端之间传输通信的消息协议类别,如我们前面所讲总体划分为文本 (text) 和二进制 (binary) ,为节约带宽,提高传输效率,一般情况下使用二进制类型的为多数,有时还会使用基于文本类型的协议,这需要根据项目 / 产品中的实际需求。常用协议有以下几种:

thrift.protocol.TBinaryProtocol二进制编码格式进行数据传输客户端构建方式:

protocol = TBinaryProtocol.TBinaryProtocol(transport)

服务端构建方式:

pfactory = TBinaryProtocol.TBinaryProtocolFactory()

thrift.protocol.TCompactProtocol高效率的、密集的二进制编码格式进行数据传输,推荐使用客户端构建方式:

protocol = TCompactProtocol.TCompactProtocol(transport)

服务端构建方式:

pfactory = TCompactProtocol.TCompactProtocolFactory()

thrift.protocol.TJSONProtocol使用 JSON 的数据编码协议进行数据传输客户端构建方式:

protocol = TJSONProtocol.TJSONProtocol(transport)

服务端构建方式:

pfactory = TJSONProtocol.TJSONProtocolFactory()

2 传输

常用的传输层有以下几种:

thrift.transport.TSocket使用阻塞式 I/O 进行传输,是最常见的模式客户端构建方式:

transport = TSocket.TSocket('127.0.0.1', 8888)

服务端构建方式:

transport = TSocket.TServerSocket('127.0.0.1', 8888)

thrift.transport.TTransport.TBufferedTransport原始的socket方式效率不高,Thrift提供了封装的加了缓存的传输控制,推荐方式客户端构建方式:

transport = TSocket.TSocket('127.0.0.1', 8888)transport = TTransport.TBufferedTransport(transport)

服务端构建方式:

transport = TSocket.TServerSocket('127.0.0.1', 8888)tfactory = TTransport.TBufferedTransportFactory()


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Ajax实现省市区三级联动
下一篇:Thrift的接口定义语言IDL(thrift用法)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~