1.RPC是什么
RPC全称是Remote Procedure Call,是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或是函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的,本质上编写的调用代码基本相同
2.RPC特点与作用
(1)简单
RPC概念的术语十分清晰和简单,这样建立分布式计算就更容易
(2)高效
过程调用看起来十分简单而且高效
(3)通用
为了使用统一的通信机制
简单地说,就是一般程序员对于本地的过程调用很熟悉,那么我们把RPC做成和本地调用完全类似,那么久更容易被接受,使用起来毫无障碍。
3.RPC要素
(1)地址列表-注册中心
注册中心CongfigServer中存储了,能够提供某种服务的所有地址。服务的提供者告诉注册中心自己的ip和自己能提供的服务;服务的调用者询问注册中心有哪些ip能够提供这种服务,然后调用者就和服务提供者通信了。
注意:这里的注册中心中的地址列表绝对不能写成配置文件的形式,因为增加、减少服务提供者主机,在分布式计算中很常见,不可能写死
服务提供者告诉这侧中心自己可以提供这些服务;调用者向这侧中心询问
服务调用者获得注册中心的地址之后发起通信
(2)服务提供者和调用者
这里user就是client端,当user想发起一个远程调用时,它实际是通过本地调用user-stub。user-stub负责将调用的接口、方法和参数通过约定的协议规范进行编码,并通过本地的RPCRuntime实例传输到远端。远端的RPC实例收到请求后交给server-stub进行解码后发起本地调用,调用结果再返回给user端