“深入浅出”系列之Linux篇:(8)RPC和gRPC简介

1、RPC

RPC (Remote Procedure Call)是远程过程调用,比如说现在有两台服务器A, B,一个在A服务器上的应用想要调用B服务器上的应用提供的某个,由于不在两个方法不在一个内存空间,不能直接调用,需要通过网络表达调用的语义和传达调用的数据。常存在于分布式系统中。

在分布式计算,远程过程调用(RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。

Remote Procedure Call(远程过程调用)是一种进程间通信方式,也是一种技术思想。RPC通信过程主要涉及客户端、服务器端以及它们之间的数据传输和协议处理。以下是RPC通信过程的详细解释:

一、RPC通信的基本组成

客户端(Client):调用远程服务的服务消费方。客户端通过本地接口调用远程接口,将请求参数传递给远程接口。

服务器端(Server):暴露服务的服务提供方。服务器端接收并处理来自客户端的请求,然后返回处理结果。

通信协议:为了保证通信的可靠性和稳定性,RPC采用了一系列的通信协议,如TCP/IP、HTTP等。这些协议定义了数据传输的格式、顺序和错误处理等规则。

二、RPC通信的详细过程

1、客户端调用本地接口:客户端通过调用本地接口(通常是一个存根或代理对象),将请求参数传递给远程接口。这个本地接口在RPC框架中通常是自动生成的,或者由开发者根据远程服务的接口定义来编写。

2、参数封装:客户端将请求参数封装成网络字节流。这个封装过程通常包括序列化操作,即将请求参数转换成二进制格式,以便通过网络传输。

3、网络传输:客户端通过网络将封装好的请求发送给服务器端。这个传输过程可以使用TCP/IP、HTTP等通信协议来实现。

4、服务器端接收请求:服务器端接收到来自客户端的请求后,进行反序列化操作,将网络字节流转换成具体的请求参数。

5、处理请求:服务器端根据请求内容调用相应的服务方法进行处理。这个处理过程可能涉及数据库查询、计算操作等。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值