RPC原理

  RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。在OSI网络通信模型中,RPC跨越了传输层和应用层,用以满足分布式系统架构中不同的系统之间的远程通信和相互调用。简单来说,计算机 A 上的进程,远程调用计算机 B 上的进程,此时 A 上的调用进程被挂起,而 B 上的被调用进程开始执行,当值返回给 A 时,A 进程继续执行。调用方可以通过使用参数将信息传送给被调用方,通过传回的结果得到信息。这一过程,对于开发人员来说是透明的。

由于各服务部署在不同机器上,要想在服务间进行远程调用免不了网络通信过程,服务消费方每调用一个服务都要写一堆网络通信相关的代码,不仅复杂而且极易出错。如果有一种方式能让我们像调用本地服务一样调用远程服务,而让调用者对网络通信这些细节透明,那么将大大提高生产力,比如服务消费方在执行orderService.buy(“HHKB键盘”)时,实质上调用的是远端的服务。这种方式其实就是RPC。而提供了这种功能的工具我们称之为RPC框架。

在RPC框架中主要有三个角色:Provider、Consumer和Registry。

服务提供方 Provider 启动后主动向注册中心 Registry 注册机器IP、port以及提供的服务列表;

服务消费方 Consumer 启动时向注册中心 Registry 获取服务提供方地址列表,可实现软负载均衡和Failover。

posted @ 2019-01-31 16:59  PIPO2  阅读(178)  评论(0编辑  收藏  举报