美文网首页
RPC的使用目的和如何实现

RPC的使用目的和如何实现

作者: 2b72c8f69bceg | 来源:发表于2020-03-07 13:58 被阅读0次

    RPC要解决的两个问题:

    解决分布式系统中,服务之间的调用问题。

    远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。

    如何实现一个RPC

    实际情况下,RPC很少用到http协议来进行数据传输,毕竟我只是想传输一下数据而已,何必动用到一个文本传输的应用层协议呢,我为什么不直接使用二进制传输?比如直接用Java的Socket协议进行传输?

    不管你用何种协议进行数据传输,一个完整的RPC过程,都可以用下面这张图来描述

    以左边的Client端为例,Application就是rpc的调用方,Client Stub就是我们上面说到的代理对象,也就是那个看起来像是Calculator的实现类,其实内部是通过rpc方式来进行远程调用的代理对象,至于Client Run-time Library,则是实现远程调用的工具包,比如jdk的Socket,最后通过底层网络实现实现数据的传输。

    这个过程中最重要的就是序列化反序列化了,因为数据传输的数据包必须是二进制的,你直接丢一个Java对象过去,人家可不认识,你必须把Java对象序列化为二进制格式,传给Server端,Server端接收到之后,再反序列化为Java对象。

    相关文章

      网友评论

          本文标题:RPC的使用目的和如何实现

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