一、七层网络结构模型:我们先来了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层:(从上到下)第一层:应用层 。定义了用于在网络中进行通信和传输数据的接口;第二层:表示层 。定义不同的系统中数据的传输格式,编码和解码规范等;第三层:会话层 。管理用户的会话,控制用户间逻辑
一、七层网络结构模型:
我们先来了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层:(从上到下)
- 第一层:应用层 。定义了用于在网络中进行通信和传输数据的接口;
- 第二层:表示层 。定义不同的系统中数据的传输格式,编码和解码规范等;
- 第三层:会话层 。管理用户的会话,控制用户间逻辑连接的建立和中断;
- 第四层:传输层 。管理着网络中的端到端的数据传输;
- 【为啥需要RPC,而不是简单的HTTP? prc是什么意思】第五层:网络层 。定义网络设备间如何传输数据;
- 第六层:链路层 。将上面的网络层的数据包封装成数据帧,便于物理层传百思特网输;
- 第七层:物理层 。这一层主要就是传输这些二进制数据 。
二、HTTP 服务:
其实在很久以前,我对于企业开发的模式一直定性为HTTP接口开发,也就是我们常说的RESTful风格的服务接口 。的确,对于在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便 。利用现成的http协议进行传输 。我们记得之前实习在公司做后台百思特网开发的时候,主要就是进行接口的开发,还要写一大份接口文档,严格地百思特网标明输入输出是什么?说清楚每一个接口的请求方法,以及请求参数需要注意的事项等 。比如下面这个例子:
POST http://www.test.com/restful/user/info
接口可能返回一个JSON字符串或者是XML文档 。然后客户端再去处理这个返回的信息,从而可以比较快速地进行开发 。但是对于大型企业来说,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了,首先就是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作 。
三、RPC 架构:
一个完整的RPC架构里面包含了四个核心的组件,分别是Client ,Server,Client Stub以及Server Stub,这个Stub大家可以理解为存根 。分别说说这几个组件:
- 客户端(Client),服务的调用方 。
- 服务端(Server),真正的服务提供者 。
- 客户端存根,存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方 。
- 服务端存根,接收客户端发送过来的消息,将消息解包,并调用本地的方法 。
文章插图
四、 什么时候需要PRC:
先来看一下,没有RPC的时候,会怎么样:
文章插图
在过去是这样的,包括现在很多对企业服务可能也是这样,只有一个包部署在web服务器里 。
那个时候,没什么需要用到RPC的场景 。
然后当用户量大的时候呢?渐渐出现了负载均衡 。大概是这个样子:
文章插图
负载均衡能解决的问题很多,但是还是不够好,比如说,只是某一个功能模块(假设是用户中心)被访问的次数特别频繁,我可不可以把这部分内容单独拿出去?用户中心的机器独立,给它单独的带宽,给他单独的服务器,给他单独的数据库?
不这么干其他的功能模块都干不下去了啊 。
以学校餐厅举例:
学校餐厅,可以容纳500人同时就餐,但是有一家面馆,生意特别好,每到饭点来吃饭的人都有2000人,占满了餐桌,排队好几百米,餐厅的其他摊位肯定不乐意了吧?
推荐阅读
- 普洱茶需要煮吗
- 普洱生茶需要煮吗
- 办银行卡需要什么
- 饭店的土豆丝为啥炒的那么好吃 土豆丝怎么炒好吃
- 内墙涂料四大误区 选购需要谨慎避免
- 拜佛的好处都有什么
- 绿色环保涂料选购 四个不要需要留意
- 去台湾需要什么证件
- 人们为什么喜欢在家里摆葫芦
- 清蒸皮皮虾需要蒸多久