<返回更多

什么是RPC?RPC有什么用?与语言有关吗?

2020-07-13    
加入收藏

RPC,是一种远程调用方式(Remote Procedure Call),通过 RPC 我们可以像调用本地方法一样调用别的机器上的方法,用户将无感服务器与服务器之间的通讯。RPC 在微服务当中,起到相当大的作用,当然 RPC 不是微服务必须的一种方式,有别的方式也可以实现这种远程调用,例如 RESTful API 就可以实现远程调用。如果有用过 SOAP,那么你使用 RPC 将会觉得很类似,都是可以直接调用别的机器上的方法。

随着业务的发展,我们的项目从简单的单体结构逐渐的演化成微服务结构,我们为什么要拆分成微服务呢?那我们来说说微服务和单体架构的优缺点。

单体架构

「系统架构」什么是RPC?RPC有什么用?与语言有关吗?

 

单体架构优点

单体架构缺点

微服务架构

在2014年被提出,现在国内很多公司已经使用,微服务是一种架构设计,并不是说什么框架或者代替什么。微服务做的事情是按照项目颗粒度进行服务的拆分,把模块单独拿出来做成每一个单独的小项目。微服务的主要特点有:每一个功能模块是一个小项目、独立运行在不同进程或者机器上、不同功能可以又不同的人员开发独立开发不松耦合、独立部署不需要依赖整体项目就可以启动单个服务、分布式管理。每一个服务只要做好自己的事情就好了。在设计微服务的时候还需要考虑到数据库的问题,是所有微服务使用共同一个数据库还是每一个服务单个数据库。

微服务架构优点

微服务架构缺点

服务调用

「系统架构」什么是RPC?RPC有什么用?与语言有关吗?

 

如上图所示,RPC 就用于调用者与服务之间的通讯。RPC 协议可基于 TCP、UDP 或者 HTTP 实现,但是更推荐选择 TCP。

例如,调用者需要调用商品的服务就可以通过 RPC 或者 RESTful API 来调用,那么 RPC 调用和 RESTful API 两者之间的区别在哪呢?

RPC 调用过程

「系统架构」什么是RPC?RPC有什么用?与语言有关吗?

 

RPC 最主要的作用就是用于服务调用

我们从 RPC 的使用场景开山篇,对于单体架构和微服务的进行了一个描述。这个就是 RPC 的一个使用场景,也是最常用的一个使用场景。大家只有了解好 RPC 是什么使用在什么场景才能更好的去使用。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>