发布网友 发布时间:2022-04-21 18:29
共1个回答
热心网友 时间:2023-05-21 00:53
RPC(Remote Procere Call,即远程过程调用)是建立在Socket之上的,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用)。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法。
由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。对于RPC架构来说,应用越底层,代码越复杂、灵活性越高、效率越高;应用越上层,抽象封装的越好、代码越简单、效率越差。
RPC 框架注意事项
RPC 的调用通常为了方便使用,会被伪装成普通方法调用的形式。但实际二者之间存在巨大的差异,进程内的方法调用的时间量级是 ns(纳秒),而进程间的 RPC 方法调用时间量级通常是 ms(毫秒),它们之间差着 10 的六次方。
因此,微服务架构下,内部主服务链之间的 RPC 调用需要异步化,服务之间的调用请求和等待结果相互之间解耦。