最后更新:2022-07-19 00:55:16 手机定位技术交流文章

RPC主要基于TCP/IP协议,而HTTP服务主要基于HTTP协议,我们都知道HTTP协议高于TCP, TCP是层级协议。所以效率来看的话,RPC肯定会赢!让我们具体讨论RPC服务和HTTP服务。
在讨论RPC与HTTP之间的区别之前,我认为有必要理解OSI的七层网络结构模型(虽然在实际应用中它基本上是五层),可以分为以下层:(从上层到下层)

第一个层:应用程序层,定义了网络中的通信和数据传输的接口。
第二层:代表第二层。 定义不同系统的数据传输格式、编码和解码规范;
第三阶段:对话阶段:管理用户会议,控制用户间逻辑连接的建立和中断;
第四层:传输层管理网络中端到端数据传输;
第五级:网络层。确定如何在网络设备之间传输数据;
第六层:链层。上述网络层数据包被封入数据框架,用于物理层传输;
第七层:物理层,主要用于传输这些二进制数据。

实际应用过程中,在五级协议结构中没有表示层或对话层。应该说,它们与应用程序层合并了。我们应该关注应用层和传输层。因为HTTP是一个应用程序层协议,TCP是一个层级协议。好,知道网络的层级模型,我们可以更好地理解为什么RPC服务比HTTP服务好!
基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持RBAC动态权限、多个租户、数据权限、工作流程、三方登录、付款、SMS、购物中心等。
RPC服务从三个角度介绍: RPC框架、同步异步调用和流行的RPC框架。
让我们从RPC服务的基本架构开始.让我羞愧地偷了一张图哈,我们看得很清楚,完整的RPC架构包含四个核心组件,它们分别是Client, Server, Client Stub和 Server Stub。每个人都可以理解这根根.下列 组成 部分 分别 讨论 :
客户,服务的呼叫者。
服务器, 真正的服务提供者.
客户端根存储服务器的地址消息,将客户端请求参数包入网络消息中,并通过网络远程发送给服务器。
服务端根接收客户端发送的消息,解封消息,并调用本地方法。
RPC主要用于大型企业,因为大型企业有许多系统,业务线复杂,效率优势是一个非常重要的部分,此时RPC的优点更加明显.这就是在实际发展中实现的。项目通常使用maven来管理.例如,我们有处理订单的系统服务,先声明它的所有的接口(这里就是具体指Java中的interface),然后将整个项目包成一个Ajar包,服务方面引入了这个二进制库,然后执行相应的函数,在客户端方面,只需要引入这个二进制库来调用。为什么这么做?主要是为了减少客户端这边的jar包大小,因为每当一个包发布时,太多的罐头包装总是影响效率.它也将客户从服务端分离出来,提高代码的可移植性。

什么是同步调用?什么是异步调用?同步调用是一个等待调用并返回结果的客户端。非同步调用是当客户端不等待调用执行完成返回结果时,然而,仍可通过回调功能等接收返回结果的通知。如果客户不关心结果,然后它可以成为单向通话。这个过程有点类似于Java中的callable和runnable接口,当我们逐步执行这项任务时,如果要知道执行的结果,你可以使用可调接口,它也可以由未来类访问,获取非同步执行的结果的信息。不顾执行的结果,只要直接使用可运行的接口,因为它不返回结果,当然啦,呼叫也是可能的。我们只是没有未来。
目前流行的开放源代码RPC框架仍然相当大,下面的三个类型被突出:
1.gRPC是谷歌最近发布的开放源代码软件,根据最新的HTTP2.0协议,它支持许多通用编程语言。我们知道HTTP2.0是基于二进制的HTTP协议的升级版本,目前,所有浏览器都支持Quick Mag。该RPC框架是基于HTTP协议的,底层使用Netty框架的支持。
Thrift是Facebook上的开源项目,它主要是跨语言服务开发框架。它有一个代码生成器,它自动生成它定义的IDL定义文件的服务代码框架。用户只能在它之前进行二次开发,因为底部的RPC通信等是透明的.但这是需要在特定语言领域学习的特性,对于用户来说,还是有一定成本的。
Dubbo是阿里集团非常著名的RPC框架开放源代码,它广泛应用于许多互联网公司和企业应用中。协议和序列框架可以被插入,这是它的独特特征。同样 的远程接口是基于Java Interface,并依靠春天的框架来促进发展.它可以方便地包装成一个单个文件,独立进程运行,它符合目前的微服务概念。
基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。
其实在很久以前,我总是把企业开发模型定义为HTTP接口开发,这就是我们经常称之为“RESTful style”服务接口。的确,在系统间接口很少和相互作用很少的情况下,该方案是信息孤岛早期普遍使用的通信方法,其优点是简单、直接、易于开发。使用现有的http协议传输。我们记得我们在公司做后端开发时的研究生实习,主要开发接口,我还要写一个大的界面文档,严格指定的输入输出是什么?明确说明每个接口的请求方法,以及您需要在请求参数时注意的事情。比如下面这个例子:
POST http://www.httpexample.com/restful/buyer/info/share
该接口可以返回JSON字符串或XML文档。然后客户端再处理返回信息,因此,它可以更快地发展。但对于大型企业来说,有许多内部子系统和许多接口,RPC框架的好处是显而易见的,首先就是长链接,你不必每次像http那样交流三次握手。减少网络开支;其次,RPC框架一般有注册中心,广泛的监控管理;发布、下线接口、动态扩展等;它对于呼叫者来说是不可理解和统一的操作.

RPC服务和HTTP服务之间仍存在许多差异,一般来说,RPC服务主要针对大型企业,而HTTP服务主要针对小企业,因为RPC更高效,而HTTP服务开发的迭代将更快。总之,框架的选择不取决于市场中流行的是什么,相反,整个项目需要全面评估,从而在仔细比较两种开发框架对于整个项目的影响,最后决定项目的最佳方案.不要为每个项目使用RPC.而是要因地制宜,具体情况具体分析。
本文由 在线网速测试 整理编辑,转载请注明出处。