Thrift协议与传输选择

简介: Thrift协议与传输选择

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()
目录
相关文章
|
Python Windows
Windows定时任务 每隔一段时间(最小到秒级)执行一次指定的Python脚本
Windows定时任务 每隔一段时间(最小到秒级)执行一次指定的Python脚本
Windows定时任务 每隔一段时间(最小到秒级)执行一次指定的Python脚本
|
7月前
|
监控 安全 物联网
Endpoint Protection Platforms (EPP)介绍
端点保护平台(EPP)是一种综合安全解决方案,旨在保护网络中的端点设备免受恶意软件、数据泄露和其他威胁。EPP整合了防病毒、数据加密、入侵防护等功能,并可通过云端管理实现全局威胁情报共享。相比传统防病毒软件,EPP更注重企业级多设备安全管理,支持行为分析与机器学习等高级功能。此外,部分EPP还集成了端点检测与响应(EDR),以应对已突破防线的威胁。在网络安全中,EPP和EDR各有侧重:EPP重预防,EDR重响应,二者结合可构建更全面的安全体系。
417 1
|
监控 前端开发 API
实战指南:使用Python Flask与WebSocket实现高效的前后端分离实时系统
【7月更文挑战第18天】构建实时Web应用,如聊天室,可借助Python的Flask和WebSocket。安装Flask及Flask-SocketIO库,创建Flask应用,处理WebSocket事件。前端模板通过Socket.IO库连接服务器,发送和接收消息。运行应用,实现实时通信。此示例展现了Flask结合WebSocket实现前后端实时交互的能力。
1543 3
|
10月前
|
机器学习/深度学习 运维 自然语言处理
大模型技术在安全威胁检测中的应用:从传统到未来的跃升
大模型技术在安全威胁检测中的应用:从传统到未来的跃升
733 1
大模型技术在安全威胁检测中的应用:从传统到未来的跃升
|
消息中间件 监控 网络协议
构建高效微服务通信:选择合适的通信方式
构建高效微服务通信:选择合适的通信方式
|
消息中间件 存储 分布式计算
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
339 4
|
Java 编译器 Serverless
Java 原生化的未来 Graal AOT 编译器
使用 Graal 编译器对 Java 程序进行 AOT 编译使其适合 Serverless 场景。
360 0
Java 原生化的未来 Graal AOT 编译器
|
JSON API 网络架构
gRPC 与 REST 的比较分析:哪种 API 适合您的开发需求?
gRPC, 由 Google 推出的开源远程过程调用(RPC)框架, 使两个应用程序间的方法调用变得简单,支持结构化数据的交换。通过采用 Protocol Buffers (Protobuf) ——一种与语言无关的接口定义语言,gRPC 体现了许多现代网络通信技术的优势
gRPC 与 REST 的比较分析:哪种 API 适合您的开发需求?
|
KVM 虚拟化 数据安全/隐私保护
KVM虚拟机安装实战
本文讲述了如何创建并使用VNC连接KVM虚拟机的详细教程,包括安装图解和命令行参数说明。
487 8
|
Linux
Linux 设备驱动程序(四)
Linux 设备驱动程序(四)
208 1

热门文章

最新文章