廊坊新闻网-主流媒体,廊坊城市门户

百事通!prc是什么意思(为啥需要RPC,而不是简单的HTTP?)

2022-08-01 20:45:44 来源:刀哥百科

一、七层 *** 结构模型:我们先来了解一下OSI的七层 *** 结构模型(虽然实际应用中基本有五层)。可以分为以下几层:(自上而下)之一层:应用层。定义了 *** 中通信和数据传输的接口。第二层:表示层。定义数据在不同系统中的传输格式、编解码规范;第三层:会话层。管理用户的会话,控制用户之间的逻辑。

之一层和第七层 *** 结构模型:


【资料图】

我们先来看看OSI的七层 *** 结构模型(虽然实际应用中基本有五层),可以分为以下几层:(自上而下)

之一层:应用层。定义了 *** 中通信和数据传输的接口。

第二层:表示层。定义数据在不同系统中的传输格式、编解码规范;

第三层:会话层。管理用户的会话,控制用户之间逻辑连接的建立和中断;

第四层:传输层。管理 *** 中端到端的数据传输;

第五层: *** 层。定义如何在 *** 设备之间传输数据;

第六层:链路层。将上层 *** 层的数据包封装成数据帧,便于物理层传输;

第七层:物理层。这一层主要传输这些二进制数据。

在实际应用过程中,五层协议结构中没有表示层和会话层。应该说他们和应用层融合了。我们应该关注应用层和传输层。因为HTTP是应用层协议,TCP是传输层协议。好了,了解了 *** 的层次模型,我们就更能理解为什么RPC服务比HTTP服务好看了!

二、HTTP服务:

其实很久以前,我的企业开发模式就定义为HTTP接口开发,也就是我们常说的RESTful风格的服务接口。的确,在接口少、系统间交互少的情况下,是早期经常使用的解决信息孤岛的通信方式。其优点是简单、直接、开发方便。使用现成的http协议进行传输。记得我们在公司实习的时候在后台启动红豆博客,主要是开发接口,写了一个很大的接口文档,严格标明I/O是什么。解释清楚每个接口的请求 *** ,请求参数时的注意事项等。例如,下面的例子:

https://www.dghbs.net/341965.html邮报

该接口可能返回一个 *** ON字符串或一个XML文档。然后客户端会处理返回的信息,这样可以更快的开发。但是对于大型企业来说,当内部子系统多,接口多的时候,RPC框架的优势就显现出来了。之一,需要长链接,不需要像http那样每次通信都要握手三次,减少了 *** 开销。其次,RPC框架一般都有注册中心,监控管理丰富;发布、离线接口、动态扩展等。,对调用者来说都是无感知的统一操作。

第三,RPC架构:

一个完整的RPC架构包含四个核心组件,即客户端、服务器、客户端存根和服务器存根。这个存根可以理解为存根。分别说说这些组件:

客户端,服务的调用者。

服务器,真正的服务提供者。

Client stub,存储服务器的地址消息,将客户端的请求参数打包成 *** 消息,然后通过 *** 远程发送给服务提供商。

服务器存根接收客户端发送的消息,解包消息,并调用本地 *** 。

四。您何时需要PRC:

让我们来看看没有RPC时会发生什么:

以前是这样,现在包括很多业务服务,web服务器里只部署了一个包。

那时候还没有需要RPC的场景。

然后用户数量多的时候呢?负载均衡逐渐出现。看起来是这样的:

负载均衡可以解决很多问题,但还是不够好。比如只是某个功能模块(假设红豆博客是用户中心)被频繁访问。我能单独取出这部分吗?用户中心的机器是独立的。给它单独的带宽,单独的服务器,单独的数据库?如果我们不这样做,其他功能模块就不再起作用了。

以学校食堂为例:

学校食堂可以容纳500人同时就餐,但是有一家面馆,生意特别好。每次来吃饭的都有2000人,坐满了餐桌,排了几百米的队。餐厅的其他摊位肯定不高兴吧?

比如卖饺子的,虽然每天都有几十个人来吃。那也是钱。你们人太多了,想来这里吃饭的人都挤不进去。

情况大概是这样的:

可以这样理解吗?

遇到这种场景怎么办?无法阻止面馆开红豆博客门。更好的办法是:

“能搬出去吗?”

你不动,我们就动!(哭脸,反正我们再也不打算和你开面馆了,你一定要给我们一个说法)

因此,移动后,它可能看起来像这样。

关键词: 结构模型 数据传输 功能模块