本文作者:IMWeb Jianglinyuan 原文出处:IMWeb社区 未经同意,禁止转载
RPC的全称是Remote Procedure Call,它是一种进程间的通信方式。允许像调用本地服务一样调用远程服务,它的具体的实现方式可以不同,例如Spring的HTTP Invoker,FaceBook的Thrift二进制私有协议通信。
RPC概念术语在上世纪80年代由Bruce Jay Nelson提出,在他的论文中对RPC进行了如下的总结:
2006年之后,随着移动互联网的发展,各种智能终端的普及,远程分布式调用已经成为主流,RPC框架也如雨后春笋搬诞生,开源和自研的RPC框架的普及标志着传统垂直应用架构时代的终结。
RPC框架的目的就是让远程过程(服务)调用更加简单、透明,RPC框架负责屏蔽底层的传输方式(TCP或者UDP)、序列号方式(XML/JSON/二进制)和通信细节。框架使用者只需要了解谁在什么位置提供了什么样的远程服务接口即可,开发者不用关心底层的通信细节和调用过程。其原理图如下图所示:
RPC框架实现的几个核心的技术总结如下:
业界开源的RPC框架非常多,比较主流的RPC框架列举如下: