RPC的概念
RPC(远程过程调用)可以分为两部分:远程过程以及过程调用。远程过程是指每台机器上提供的服务,过程调用就是对远程过程调用以及数据传输。
RPC的优点
RPC带来的优势其实就是分布式架构带来的优势。在RPC的支持下,可以实现模块的分布式部署,可以实现更好的维护性,扩展性以及协同式开发。
RPC带来的问题
RPC的出现为构建分布式架构带来了便利,但是分布式系统本身的问题也被暴漏了下来。存在的问题如下:
- 通信延迟
- 地址空间隔离
- 局部故障
- 并发问题
1、通信延迟
跨机器、网络出现的通信延迟的概率一定比同一台机器的进程间通信大。编解码也会带来性能损耗。而且网络通信也是不可靠的会出现乱序、错误、丢数据等问题。
2、地址空间隔离
内存地址在一台机器上才有效
3、局部故障
故障的发现和通知需要引入新的组件,故障的类型判断也会变得复杂,比如是网络链路故障还是机器故障,继而会存在数据不一致问题,故障节点和正常节点会出现数据不一致问题。