`

Thrift 和 Protocol Buffers 比较

阅读更多

 ThriftProtocol Buffers Backers Bindings Output Formats Primitive Types Enumerations Constants Composite Type Exception Type Documentation License Compiler Language RPC Interfaces RPC Implementation Composite Type Extensions
Facebook, Apache (accepted for incubation) Google
C++, Java, Python, PHP, XSD, Ruby, C#, Perl, Objective C, Erlang, Smalltalk, OCaml, and Haskell C++, Java, Python
(Perl, Ruby, and C# under discussion)
Binary, JSON Binary
bool
byte
16/32/64-bit integers

double
string
byte sequence
map<t1,t2>
list<t>
set<t>
bool

32/64-bit integers
float
double
string
byte sequence

“repeated” properties act like lists
Yes Yes
Yes No
struct message
Yes No
So-so Good
BSD-style Apache
C++ C++
Yes Yes
Yes No
No Yes

 

http://stuartsierra.com/2008/07/10/thrift-vs-protocol-buffers

 

Milliseconds to create an object, smaller is better. The Protobuf results is not a mistake! It was created by the builder pattern.

Milliseconds to serialize an object to a byte array, smaller is better.
Milliseconds to deserialize an object from byte array, smaller is better.
Size of the byte array of a serialized object, smaller is better.

 

http://eishay.blogspot.com/2008/11/serialization-protobuf-vs-thrift-vs.html

 

从比较可以看出来,Thrift是很不错的,只是,现在似乎在windows编译有点麻烦。

 

 

分享到:
评论

相关推荐

    benchmarks:Protocol Buffers 和 Thrift 的基准测试

    Protocol Buffers 和 Thrift 的基准。如何运行基准测试克隆存储库: $ git clone $ cd benchmarks $ git submodule init $ git submodule update 按照此处的说明安装 Thrift 的依赖项: 构建并运行基准测试: $ ...

    protobuf/thrift/avro-序列化性能测试工程

    protobuf(Protocol Buffers)、thrift和avro是三种广泛使用的序列化框架,它们在分布式系统、网络通信以及数据存储中扮演着重要角色。这个名为"protobuf/thrift/avro-序列化性能测试工程"的项目专注于对比这三种...

    THRIFT 学习资料

    这些定义存储在 `.thrift` 文件中,类似于协议缓冲区(Protocol Buffers)的 `.proto` 文件。服务定义包括服务名、方法名、输入参数和返回值。例如: ```thrift service MyService { string echo(1: string ...

    thrift-0.9.3

    然而,随着技术的发展,Thrift 面临着如 gRPC 等新型框架的竞争,后者基于 HTTP/2 和 Protocol Buffers,提供了更快的性能和更现代的特性。但无论如何,对于需要兼容旧有系统或者对 Thrift 有深厚依赖的项目来说,...

    DSNF代码生成啊啊

    2. **代码生成工具**:了解不同类型的代码生成工具,如Apache Thrift和Protocol Buffers,以及如何根据项目需求选择合适的工具。 3. **代码转换**:学习如何使用CALL转换器这样的工具,将代码从一种形式或语言转换为...

    Go-Bender一个用于创建负载测试应用程序易于使用的Go库

    Bender可以使用HTTP,Thrift,Protocol Buffers等协议轻松构建服务的负载测试应用程序。 Bender提供了一个灵活,强大的原语库,可以组合(使用普通的Go代码)来构建针对任何用例定制的负载测试器

    基于C++ Workflow的RPC框架设计与源码,支持SRPC、百度bRPC、腾讯tRPC及thrift协议

    Protocol Buffers定义文件和Thrift定义文件表明项目在协议定义层面也提供了支持,这使得开发者可以轻松地定义数据传输格式,从而实现不同类型服务之间的数据交换。构建脚本文件则确保了项目可以在不同的开发环境中...

    Viper是一个基于Anno微服务引擎开发的Dashboard示例项目。Anno底层通讯采用grpc、thrift.zip

    Anno底层通信协议包括了gRPC和Thrift,这些技术的选择和应用为Viper的开发提供了坚实的基础。 首先,我们需要理解gRPC和Thrift在微服务架构中的作用。gRPC是由Google主导开发的高性能、开源和通用的RPC框架。它支持...

    Viper是一个基于Anno微服务引擎开发的Dashboard示例项目。Anno底层通讯采用grpc、thrift_hy5.zip

    grpc是由Google开发的现代开源高性能RPC框架,它使用HTTP/2作为传输协议,并采用Protocol Buffers作为接口描述语言,具有跨平台、语言无关的优势。而thrift是一种接口定义语言和二进制通信协议,用于服务的开发,...

    Hadoop序列化机制

    Hadoop提供了两种主要的序列化框架:Writable和Protocol Buffers,以及更现代的Apache Avro、Thrift和Kryo。 1. Writable接口:这是Hadoop最初提供的序列化机制,适用于Java对象。所有可序列化的类都需要实现...

    Go-Turbo一个很”轻”的微服务工具把你的grpc|thrift接口变成HTTP接口

    gRPC基于HTTP/2协议,采用ProtoBuf(Protocol Buffers)作为序列化协议,提供高性能、类型安全且语言中立的远程过程调用(RPC)框架。Thrift则是Facebook开源的一个跨语言的、可扩展的软件栈,用于构建高并发、高...

    Apache Hadoop---Avro.docx

    在序列化系统的选择上,Avro 与 Google 的 Protocol Buffers 和 Facebook 的 Thrift 等系统有所不同。虽然这些系统在某些场景下表现出色,但它们各自存在一定的局限性。例如,Protocol Buffers 需要预先定义数据结构...

    fdbus源码下载,方便学习

    fdbus,全称为Fast Distributed Bus,是一个高性能、轻量级的跨平台进程间通信(IPC)框架,它基于C++实现,借鉴了Facebook的Thrift和Google的Protocol Buffers的设计思想。fdbus的核心目标是提供一种高效、灵活的...

    Viper是一个基于Anno微服务引擎开发的Dashboard示例项目。Anno底层通讯采用grpc、thrift_hy4.zip

    grpc是由Google主导开发的一种高性能、开源和通用的RPC框架,它基于HTTP/2协议传输,并使用Protocol Buffers作为接口描述语言。而thrift是Facebook开源的一种可伸缩的服务开发框架,它支持多种编程语言,允许客户端...

    ASN1抽象语法详细教程讲解

    可能很多人没有听说过ASN.1, 但是相信有过跨平台编程经验的同学可能都听过protocol buffers和Apache Thrift,虽然ASN.1和上面两个语言相比不是那么出名,但是ASN.1的出现要比他们早的多,早在1984年ASN.1就出现了。...

    2015年阿里巴巴中间件比赛,实现rpc框架基本功能.zip

    2. **协议封装与解封**:RPC框架需要处理网络通信,通常会定义一套自己的协议,如Hessian、Thrift或Protocol Buffers。这些协议用于将方法调用和参数序列化为网络传输的数据,到达目标后进行反序列化恢复原貌。 3. ...

    【C#】一个微服务快速开发框架,底层通讯可选用grpc、thrift、服务发现、调用链追踪、Cron调度、限流_pgj.zip

    它使用Protocol Buffers作为接口定义语言,有助于实现跨语言通信。而Thrift是由Facebook开发的服务开发框架,它同样支持多种编程语言,并允许开发者定义和创建服务接口和数据类型,通过传输层进行网络通信。 服务...

    代码自动生成和配置文件自动更改的工具

    还有代码生成器如Apache Thrift或Protocol Buffers,它们将定义的服务协议转换为多语言的客户端和服务端代码。 2. **配置文件自动更改**: 配置文件自动更改通常涉及到配置管理工具,它们允许开发者在不修改代码的...

    基于Go语言的高性能分布式微服务框架Primus设计源码

    Protocol Buffers和Thrift则是两种不同的接口定义语言,分别用于定义服务之间的通信协议。 总体来看,Primus框架的设计源码通过上述多种文件的合理组织与运用,展现了其作为高性能分布式微服务框架的设计理念。它...

Global site tag (gtag.js) - Google Analytics