什么是 RPC

RPC:远程调用。通过RPC框架,使得我们可以像调用本地方法一样地调用远程机器上的方法:

1、本地调用某个函数方法

2、本地机器的RPC框架把这个调用信息封装起来(调用的函数、入参等),序列化(json、xml等)后,通过网络传输发送给远程服务器

3、远程服务器收到调用请求后,远程机器的RPC框架反序列化获得调用信息,并根据调用信息定位到实际要执行的方法,执行完这个方法后,序列化执行结果,通过网络传输把执行结果发送回本地机器

4、本地机器的RPC框架反序列化出执行结果,函数return这个结果

服务调用端(本地机器):

服务提供端(远程机器):

Java Netty 是在TCP(Socket)层对nio进行封装的框架,在RPC框架中可用于解决网络传输问题。

现在流行的微服务框架(dubbo、spring cloud等),实际上就是各种各样的RPC框架

--------------------------------

你调用一个函数,可是这个函数的实现体(代码)是另一台机器上的,这就是RPC
Remote procedure call 远程过程(就是函数)调用。

为什么能做到呢?
因为他(RPC框架)写了socket的代码,这样你就不用写了。
所以RPC就是一个比直接socket编程模型更方便的(网络编程)模型。

Netty只是网络通信框架,把Java Socket的API又封装了一次,使得你可以用最少的代码来完成网络通信这一任务。
-------------------------------

你妈妈电脑系统出问题了,你使用qq远程助手,帮她修复系统,这中间,你做的每一步都可以理解为一个rpc调用,本质上就是想操作你本机的代码一样调用远程机器上的代码

转自:https://www.zhihu.com/question/25536695

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页