rpc笔记
rpc是指远程过程调用,意思就是说有两台服务器,比如说我现在在用的笔记本和树莓派机器人的微型电脑,在我的电脑上写代码,变成一个函数,然后通过这个方式能在树莓派机器人上面实现调用这个函数进行操所,因为两台务器不是在同一内存上面所以不能够直接调用,一定要通过网络来表达调用的语义和传达调用的数据。
01:首先要解决通信的问题,主要是通过客户端和服务器之间建立tcp连接,远程过程调用的所有交换的数据都在这个连接里传输,连接可以使按需连接,调用结束后就断掉,也可以是长连接,多个远程过程调用共享同一个连接。
02:然后是要解决寻址问题,也就是要怎么让两台服务器发现对方连接起来,如何连接到主机或者是特定的窗口
03:当其中的一台服务器上面的应用发起远程过程调用时,方法的参数需要通过底层的网络协议比如tcp传递到另一台服务器,因为网络协议是基于二进制的,所以内存中的参数的值要先序列化成二进制的形式,也就是序列化,之后发送给另一台服务器
04:收到二进制参数的服务器再对参数进行反序列化,恢复成内存中的表达方式,然后再找到对应的方法,进行本地调用,最后得到返回值
05:相同的序列化传输数据给原来的发送连接请求的服务器,如此重复操作