美文网首页
RPC 远过程调用协议

RPC 远过程调用协议

作者: 心悦飞飞 | 来源:发表于2019-07-31 11:51 被阅读0次

    传送门- - 转载地址
    Remote Procedure Call Protocol
    一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议
    RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间 携带信息数据
    在OSI网络通信模型中,RPC跨越了传输层和应用层。
    RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
    RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。

    首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。
    在服务器端,进程保持睡眠状态直到调用信息的到达为止。
    当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,
    最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。 
    过程调用是将数据(以参数和返回值的形式)与控制从代码的一部分传递到另一部分
    

    RPC设计的目的:
    隐藏客户端服务器通信细节
    客户端调用更加像传统的过程调用
    服务器处理更加像传统的过程调用
    理念是把网络通信做的跟函数调用一样
    服务端定义函数、客户端远程调用函数

    远程过程调用带来的新问题
    服务寻址 - - Call ID映射
    序列化和反序列化
    网络传输

    RPC 组件职责
    1. RPCServer 负责导出export远程接口
    2. RPCClient -负责导入import远程接口的代理实现
    3. RPCProxy -远程接口的代理实现
    4. RPCInvoker
    客户方实现:负责编码调用信息和发送调用请求到服务方并等待调用结果返回
    服务方实现:负责调用服务端接口的具体实现并返回调用结果
    5. RPCProtocol 负责协议编/解码
    6. RPCConnector 负责维持客户方和服务方的连接通道和发送数据到服务方
    7. RPCAcceptor 负责接收客户方请求并返回请求结果
    8. RPCProcessor 负责在服务方控制调用过程包括管理调用线程池、超时时间等
    9. RPCChannel 数据传输通道

    RPC

    相关文章

      网友评论

          本文标题:RPC 远过程调用协议

          本文链接:https://www.haomeiwen.com/subject/lyuzrctx.html