什么是RPC服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是RPC服务相关的知识,希望对你有一定的参考价值。

参考技术A 俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用形式。常见的RPC有GRPC、Thrift、Dubbo等。

RPC简单理解就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

RPC就是要像调用本地的函数一样去调远程函数。假设我们要调用函数Add来计算value1 * value2的结果,直接调用Add方法即可。在远程调用时,我们要执行的函数在远程的机器上。

RPC是什么?

RPC是什么?

 

  1. REST和RPC都常用于微服务架构中。
  2. 都是网络交互的协议规范。
  3. 通常用于多个微服务之间的通信协议。

RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。

什么是RPC

远程方法调用,就是像调用本地方法一样调用远程方法。常见RPC框架结构图:

RPC框架要做到的最基本的三件事:

1、服务端如何确定客户端要调用的函数;

在远程调用中,客户端和服务端分别维护一个【ID->函数】的对应表,  ID在所有进程中都是唯一确定的。客户端在做远程过程调用时,附上这个ID,服务端通过查表,来确定客户端需要调用的函数,然后执行相应函数的代码。

2、如何进行序列化和反序列化;

客户端和服务端交互时将参数或结果转化为字节流在网络中传输,那么数据转化为字节流的或者将字节流转换成能读取的固定格式时就需要进行序列化和反序列化,序列化和反序列化的速度也会影响远程调用的效率。

3、如何进行网络传输(选择何种网络协议);

多数RPC框架选择TCP作为传输协议,也有部分选择HTTP。如gRPC使用HTTP2。不同的协议各有利弊。TCP更加高效,而HTTP在实际应用中更加的灵活。

REST与RPC比较

都是网络交互的协议规范。通常用于多个微服务之间的通信协议。

高与低是对实现两种规范框架的相对比较,但也不是绝对的,需要根据实际情况而定。

REST与RPC应用场景

REST和RPC都常用于微服务架构中。

1、HTTP相对更规范,更标准,更通用,无论哪种语言都支持http协议。如果你是对外开放API,例如开放平台,外部的编程语言多种多样,你无法拒绝对每种语言的支持,现在开源中间件,基本最先支持的几个协议都包含RESTful。

RPC在微服务中的利用

2、 RPC 框架作为架构微服务化的基础组件,它能大大降低架构微服务化的成本,提高调用方与服务提供方的研发效率,屏蔽跨进程调用函数(服务)的各类复杂细节。让调用方感觉就像调用本地函数一样调用远端函数、让服务提供方感觉就像实现一个本地函数一样来实现服务。

最后建议

REST调用及测试都很方便,RPC就显得有点繁琐,但是RPC的效率是毋庸置疑的,所以建议在多系统之间的内部调用采用RPC。对外提供的服务,Rest更加合适。

 

参考:RPC

以上是关于什么是RPC服务的主要内容,如果未能解决你的问题,请参考以下文章

什么时候需要用rpc服务

RPC是什么?

RPC:RPC 是什么?

RPC接口测试什么是 RPC 框架

请问RPC服务器不可用是啥意思?

到底什么是RPC?