Grpc 和 Thrift 对比 - Go语言中文社区

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

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/chengzhi0371/article/details/100788739
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 22:00:02
  • 阅读 ( 2461 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢