【每日面试】什么是RPC?
1)是什么?
RPC(Remote Procedure Call)远程过程调用,就是服务调用。比较常见的方式是REST。由于HTTP在应用层中完成,整个通信的代价较高,远程过程调用中直接基于TCP进行远程调用,数据传输在传输层TCP层完成,更适合对效率要求比较高的场景,RPC主要依赖于客户端和服务端之间建立Socket链接进行,底层实现比REST更复杂。
2)有什么用?
让分布式或者微服务系统中不同服务之间的调用像本地调用一样简单。
3)用在哪里?
跨系统或跨服务器进行服务调用时使用
4)怎么用?
常用RPC框架:dubbo,gRPC,Hessian
5)为什么这样用?
写到这里,发现对RPC了解不够深入,看的这些文章都在说RPC,介绍了对应的框架,那么RPC应该就是一种思想,就像MVC,并没有明确的定义说必须怎么做,是因为某些场景的需要而产生的一种想法。RPC框架就是在这种想法之下的产物,具体的实现。看来要研究一下dubbo才能有更深层次的理解。
参考文章:
什么是RPC?
https://www.jianshu.com/p/7d6853140e13
(近)万字总结,RPC 项目相关问题及解答
https://www.nowcoder.com/discuss/588903?from=zhnkw
互联网面试解析 文章被收录于专栏
面试分析,在机会来临前做好准备。