Grpc 和 Thrift 对比

RPC协议

远程过程调用, 计算机通信协议,允许运行于一台机器上的程序调用网络中另外一台机器的子程序

为什么选择RPC

  • 提高开发效率,开发人员可以把更多精力放在具体的接口实现,而不必考虑数据的底层传输问题。
  • 大多数rpc框架都是很多优秀开发人员的智慧结晶,它们的功能实现和执行效率都很优秀。
  • client端和server端必须遵循统一的接口规范,避免产生client和server之间接口或数据局结构不匹配的情况。

区别

  • Grpc
    • Grpc 是高性能,通用的开源RPC框架,基于HTTP/2协议标准
    • Grpc 以protobuf作为LDL(接口描述语言),通过protoc来编译框架代码
    • 支持 C, C++, Node.js, Python, Ruby, Objective-C,PHP and C#
  • Thrift
    • Thrift是一种可伸缩的跨语言服务的RPC软件框架。它结合了功能强大的软件堆栈的代码生成引擎,以建设服务,高效、无缝地在多种语言间结合使用
    • Thrift 以thrift 作为LDL
    • 支持C、C++ 、C# 、D 、Delphi 、Erlang 、Go 、Haxe 、Haskell 、Java 、JavaScript 、node.js 、OCaml 、Perl 、PHP 、Python 、Ruby 、SmallTalk
    • 使用Thrift:Hadoop、HBase、Cassandra、Scribe、LastFM、Facebook、 Evernot blockchainblockchain

如何选择

  • 什么时候应该选择gRPC而不是Thrift
    • 需要良好的文档、示例
    • 喜欢、习惯HTTP/2、ProtoBuf
    • 对网络传输带宽敏感
  • 什么时候应该选择Thrift而不是gRPC
    • 需要在非常多的语言间进行数据交换
    • 对CPU敏感
    • 协议层、传输层有多种控制要求
    • 需要稳定的版本
    • 不需要良好的文档和示例

参考

gRPC vs Thrift

转载于:https://my.oschina.net/u/4118017/blog/3037861

你可能感兴趣的:(Grpc 和 Thrift 对比)