关于RPC

1.什么是RPC?

RPC,全程 Remote Procedure Call,即远程过程调用。主要作用是屏蔽网络编程细节,实现调用远程方法就像调用本地方法(同一个进程中的方法)一样的体验。

2.一次RPC调用的过程

(1) 服务消费方(client) 以本地调用的方式调用客户端存根(远程方法在本地的模拟对象,由方法名和方法参数组成)client stub 接受到调用后负责将方法名,方法参数等包装,并将包装后的消费通过网络发送到服务端;

(2) 服务端收到消息后,交给代理存根在服务器的部分后解码为实际的方法名和参数;

(3)service stub根据解码结果调用服务器上本地的实际服务;

(4)本地服务执行并将结果返回给server stub;

(5)service stub将返回结果打包成消息并发送至消费方;

(6)client stub接受到消息,并进行解码;

(7)服务消费方得到最终结果。

RPC框架的目的是要将中间步骤都封装起来,让我们进行远程方法调用的时候感觉就像本地调用一样。

 

3.RPC和HTTP的区别

Http是协议,在应用层。http中所使用的报文中有效字节仅仅占约30%,you 70%的时间用于传输元数据废编码。需要可读性强,包括输入,输出,解析等;

RPC是方法,在传输层。它的实现可能用到http。RPC仅通过序列化发送有效数据,省去了很多无效的数据,提高传输效率。

简单来说,RPC框架更多的是封装了“服务发现,负载均衡,熔断降级”一类面向服务的高级特性。良好的RPC调用是面向服务的封装,针对服务的可用性和效率等都做了优化。

并且,RPC的调用仅设计到传输协议+序列化协议,而不用考虑接口可读性,可以更方便的调用。

文章由

RPC与HTTP的区别与联系_coreyhsu2020的博客-CSDN博客_rpc和http以及

RPC简介_小小玉璞境Java工程师的博客-CSDN博客_rpc是什么意思整理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值