RPC:remote procedure call(远程过程调用:即调用远程的程序) RPC采用Client-Server结构,通过request-response消息模式实现。
RMI(remote method invocation)远程方法调用时oop领域中RPC的一种具体实现
速度相对慢,可靠性降低
1.客户端处理过程中调用Client stub,传递参数; 2.Client stub将参数编组为消息,然后通过系统调用向服务端发送消息; 3.客户端本地操作系统将信息从客户端机器发送到服务端机器;4.服务端操作系统将接收的数据包传递给Server stub; 5.Server stub解组消息为参数; 6.Server stub再调用服务端的过程,过程执行结果以反方向的相同步骤响应给客户端。
RPC调用过程中需要将参数编组为消息,接收方需要解组消息,消息由哪些部分构成及消息的表示形式就构成了消息协议。 RPC调用过程中采用的消息协议就称为RPC协议。 在TCP上可以选用或自定义协议来完成RPC消息交互,可以选用通用协议(http,https)。
封装好参数编组、消息解组、底层网络通信的RPC程序开发框架,带来的便捷是可以直接在其基础上只专注于过程代码编写。 webservice框架:Apache CXF、Apache Axis2、java自带的JAX-WS等,webService框架大多基于标准的SOAP协议。 新兴的微服务框架:Dubbo、springcloud、Apache Thrift等等。
服务化,可重用,系统间交互调用