上一篇我们介绍了 RPC 的基本知识和原理,今天我就带你看看有哪些常见的商用 RPC 框架。
Dubbo
提到 RPC 框架,我们肯定会想到 Dubbo,它是一款高性能、轻量级的开源 Java RPC 框架,提供了六大核心能力
- 面向接口代理的高性能RPC调用,
- 智能容错和负载均衡
- 服务自动注册和发现
- 高度可扩展能力
- 运行期流量调度
- 可视化的服务治理与运维
简单来说 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。
gRPC
gRPC 是 Google 开源的一个高性能、通用的开源 RPC 框架。其由主要面向移动应用开发并基于 HTTP/2 协议标准而设计,基于 ProtoBuf 序列化协议开发,并且支持众多开发语言。
通过 ProtoBuf 定义接口和数据类型还挺繁琐的,虽然 gRPC 确实很多亮点的地方,但是我还是选择 Dubbo。
Thrift
Apache Thrift 是 Facebook 开源的跨语言的 RPC 通信框架,目前已经捐献给 Apache 基金会管理,由于其跨语言特性和出色的性能,在很多互联网公司得到应用,有能力的公司甚至会基于 thrift 研发一套分布式服务框架,增加诸如服务注册、服务发现等功能。
Thrift支持多种不同的编程语言,包括C++、Java、Python、PHP、Ruby等(相比于 gRPC 支持的语言更多 )。
Motan
motan 是今年(2016 年)新浪微博开源的一款 RPC 框架,据说在新浪微博正支撑着千亿次调用。
motan 更像是一个精简版的 dubbo,可能是借鉴了 Dubbo 的思想,motan 的设计更加精简,功能更加纯粹。
好啦,常见的 RPC 框架就介绍到这里,我们可以根据自己的需求去选取合适的 RPC 框架。