一、RPC的定义
RPC:是Remote Procedure Call的缩写,中文名远程过程调用。RPC协议是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开发网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称为远程方法调用,例:Java RMI。
RPC有以下优势:
简单。RPC的语义十分清晰简单,便于建立分布式系统
高效。能高效的实现远程过程调用。
通用。RPC导出的服务可以供多个使用者用于不同的目的
二、RPC调用过程
1 客户端调用客户端的stub(client stub)。这个调用是在本地,并将调用参数push到栈(stack)中。
2 客户端stub(client stub)将这些参数包装,并通过系统调用发送到服务器机器。打包的过程叫marshalling。(常见方式:XML、JSON、二进制编码)
3 客户端本地操作系统发送信息至服务器。(可通过自定义的TCP协议或HTTP协议传输)
4 服务器系统将信息传送至服务端stub(server stub)。
5 服务端stub(server stub)解析信息。这个过程叫unmarshalling。
6 服务端stub(server stub)调用程序,并通过类似的方式返回给客户端。
三、RPC的发展
四、RPC的简单实现
五、dubbo的入门实例
原文:https://www.cnblogs.com/wqff-biubiu/p/12484076.html