为什么需要RPC:
为了将本地服务转化为异地服务调用的时候,还能够和本地调用一样。
屏蔽掉本地异地的区别
使用的前提:
- 2边的服务都是启动的
学习点:
- 参数传递:参数传递有两种形式:一种是按值传递,另外一种是按引用传递。按值传递参数的情况相对比较简单,我们只需要把值复制到网络消息中即可;按引用传递的情况就变得复杂的多,单纯的传递引用的地址空间毫无意义,因为在远程系统当中,这一地址空间指向的可能是另外一个完全不同的事物。因此,要做到支持传递引用参数,我们需要向网络中来发送参数的副本,把它们存放在远程系统的内存中,并向他们传递一个指向远程系统调用函数的指针,然后向客户端返回该对象并复制其引用。如若需要在远程系统调用中传递复杂的数据结构,比方说树结构或者是链表结构,那么我们就需要首先把这个复杂的结构转化成为一种无指针形式的数据表示,例如说扁平树的结构,然后通过网络传输,在远程系统端重构数据。