prc是什么意思(为什么需要RPC而不是简单的HTTP?)

/ 0评 / 0

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

第一层和第七层网络结构模型:

我们先来看看OSI的七层网络结构模型(虽然实际应用中基本有五层),可以分为以下几层:(从上到下)Best Network

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

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

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

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

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

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

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

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

二、HTTP服务:

其实很久以前,我的企业开发模式就被定性为HTTP接口开发,也就是我们常说的RESTful风格的服务接口。的确,在系统间接口少、交互少的情况下,在解决信息孤岛的早期阶段,往往会用到一种通信方式;优点是简单、直接、开发方便。使用现成的http协议进行传输。我们记得在公司做后台开发的时候,实习主要是开发接口,还要写一个大的接口文档,严格注明输入输出是什么。解释清楚每个接口的请求方法和请求参数的注意事项。例如,以下示例:

http://www.test.com/restful/user/info邮报

接口可能返回一个JSON字符串或一个XML文档。然后客户端处理返回的信息,这样可以快速开发。但是对于大企业来说,当内部子系统多、接口多的时候,表现出来的是RPC框架的好百特网络。首先是链接长,不需要每次交流都像h(www.isoyu.com原创版权)ttp一样握手,减少了网络开销;其次,RPC框架一般都有注册中心和丰富的监控管理;发布、离线界面、动态扩展等。是呼叫者察觉不到的统一操作。

第三,RPC架构:

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

客户端,服务的调用方。

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

客户端存根,存储服务器的地址消息,然后将客户端的请求参数打包成网络消息,再通过网络远程发送给服务器。

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

4.什么时候需要PRC?

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

过去是这样的,包括现在的许多企业服务,在web服务器中只部署了一个包。

当时没有必要使用RPC。

然后当用户数量大的时候呢?逐渐出现了负载均衡。大概是这样的:

负载均衡可以解决很多问题,但还是不够好。例如,只有某个功能模块(假设是用户中心)被频繁访问。我可以单独取出这部分吗?用户中心的机器是独立的,给它单独的带宽,给它单独的服务器,给它单独的数据库?
如果不这样做,其他功能模块就无法进行下去。

以学校餐厅为例:

学校食堂可同时容纳500人就餐,但有面馆,生意特别好。每餐都有2000人前来就餐,占据餐桌,排队数百米。餐馆里的其他摊位肯定不高兴,是吗?

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

一般情况是这样的:

你能这样理解吗?

遇到这样的场景该怎么办?面馆不可能一直开着。最好的办法是:

“你能搬出去吗?”

如果你不动,我们可以动!(哭丧着脸,反正我们再也不会和你们面馆开店了,一定要给我们一个说法)

然后,在移动之后,它可能看起来像这样。