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