14 开源RPC框架如何选型?
[专栏第6期]我给你讲解了RPC远程调用的原理,简单回顾一下一个完整的RPC框架主要有三部分组成:通信框架、通信协议、序列化和反序列化格式。根据我的经验,想要开发一个完整的RPC框架,并且应用到线上生产环境,至少需要投入三个人力半年以上的时间。这对于大部分中小团队来说,人力成本和时间成本都是不可接受的,所以我建议还是选择开源的RPC框架比较合适。
那么业界应用比较广泛的开源RPC框架有哪些呢?
简单划分的话,主要分为两类:一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的。
跟语言平台绑定的开源RPC框架主要有下面几种。
- Dubbo:国内最早开源的RPC框架,由阿里巴巴公司开发并于2011年末对外开源,仅支持Java语言。
- Motan:微博内部使用的RPC框架,于2016年对外开源,仅支持Java语言。
- Tars:腾讯内部使用的RPC框架,于2017年对外开源,仅支持C++语言。
- Spring Cloud:国外Pivotal公司2014年对外开源的RPC框架,仅支持Java语言,最近几年生态发展得比较好,是比较火的RPC框架。
而跨语言平台的开源RPC框架主要有以下几种。
- gRPC:Google于2015年对外开源的跨语言RPC框架,支持常用的C++、Java、Python、Go、Ruby、PHP、Android Java、Objective-C等多种语言。
- Thrift:最初是由Facebook开发的内部系统跨语言的RPC框架,200