RPC是什么
RPC即remote procedure call,远程过程调用。 作用体现在两方面:
- 屏蔽远程调用和本地调用的区别
- 隐藏底层网络通信
rpc核心步骤
- 网络通信
远程调用当然需要通信机制,一般为TCP
- 序列化
网络传输必须是二进制。
- 协议
服务提供方根据协议,从二进制数据中解析请求,反序列化为请求对象。处理请求后,根据协议,序列化为二进制,写入TCP完成应答。
- 代理
按照上面三点,进行一次rpc调用需要构造请求,序列化,进行网络调用。显然这是繁琐的,因此通过动态代理,实现“无感”远程调用。
RPC存在的意义
单体应用存在许多弊端,现在正在向微服务演化。应用以服务进行拆分,彼此方法调用就应当从本地调用变为远程调用。因此rpc就是为了解决系统拆分后,各服务间通信的问题。