首页 > 编程知识 正文

互联网的www服务基于(http与rpc的区别)

时间:2023-05-06 13:28:01 阅读:95757 作者:4171

很久以前,我不太清楚RPC (即远程过程调用、远程过程调用)和HTTP调用的区别。 不都是写下服务在客户端调用吗? 这里请让我的粉丝之一笑吧~Naive! 本文简要介绍了两种形式的C/S体系结构。 首先,说明他们最本质的不同。 也就是说,RPC主要基于TCP/IP协议,而HTTP服务主要基于HTTP协议。 因为我们知道HTTP协议位于传输层协议TCP之上,所以从效率上来看,RPC当然更好。 对RPC服务和HTTP服务进行具体说明。

在谈论RPC和HTTP的区别之前,我认为有必要了解OSI的7层网络结构模型(虽然在实际应用中基本上是5层)。 那个分为以下几层。 (

在实际应用过程中,5层协议结构中没有表示层和会议层。 应该说它们和APP层合并了。 我们应该把重点放在APP和传输层两个层面上。 因为HTTP是APP应用层协议,TCP是传输层协议。 是的,了解了网络的分层模型之后,就更能理解为什么RPC服务比HTTP服务Nice好了。

从三个角度介绍RPC服务。 RPC体系结构、同步异步调用和常见的RPC框架。

让我们先来谈谈RPC服务的基本架构。 可耻地允许偷图。 完整的RPC体系结构包括四个核心组件:客户端、服务器、客户端和服务器分支机构。 这个Stub可以理解为存根。 让我们分别谈谈这些组件。

RPC主要用于大型企业。 由于大型企业的系统多、业务线复杂、效率优势是非常重要的一部分,RPC的优势就在此时凸显出来了。 在实际开发中是这样做的,但项目使用maven进行管理。 例如,有处理订单的系统服务。 首先,声明所有接口(此处具体为Java接口),并将整个项目打包为一个jar包。 服务器端引入这两个库,并实现相应的功能。 客户端也只需要部署这两个库就可以调用。 为什么要这么做? 主要是为了减少客户端的jar包的大小。 因为每次发布包时,过多的jar包总是会影响效率。 另外,还将客户端和服务器端解除结合,提高代码的移植性。

什么是同步调用? 什么是异步调用? 同步调用是指客户端等待调用执行完毕并返回结果。 异步调用是客户端不等待调用完成执行就返回结果,但可以通过回调函数等接收返回结果的通知。 如果客户端不介意结果,则可以是单向调用。 这个过程类似于Java的callable和runnable接口。 执行异步运行时,如果需要知道运行的结果,可以使用callable接口从Future类中获取异步运行的结果信息。 如果不介意执行的结果,直接使用runnable接口就可以了。 因为不返回结果。 当然,callable也可以。 我们不拿到Future就行了。

目前流行的开源RPC框架还很多。 以下重点介绍三种。

让我偷偷告诉你,我们组里已经不怎么用dubbo了,现在经常被叫做HSF。 别名是“舒服”。 以后有可能成为开源的。 大家都很期待。

其实在过去,我对企业开发的模型定性为HTTP接口开发,也就是常说的rest风格的服务接口。 确实,为了在接口少、系统与系统相互作用少的情况下解决信息孤岛初期常用的通信手段; 具有简单、直接、易于开发的优点。 使用现成的http协议进行传输。 我记得我们以前在本科实习的时候在公司做后台开发的时候,主要是进行接口的开发。 另外,是否将接口文档写得很大,并严格注明了什么是输入输出? 明确各接口的请求方法、请求参数应注意的事项等。 例如,post http://www.http example.com/restful/buyer/info/share接口可能会返回一个JSON字符串或一个XML文档。 然后,客户机通过处理该返回的信息,可以比较迅速地进行开发。 但是,对于大企业来说,在内部子系统多、接口非常多的情况下,RPC框架的优势显现出来,首先是长链接,不需要每次通信都像http一样去握手等三次,减少了网络开销; 其次,RPC框架一般都有注册中心,有丰富的监控管理的发布、离线接口、动态扩展等,对调用方来说都是麻木不仁、统一化的操作。

RPC服务和HTTP服务还有很多不同之处。 一般来说,RPC服务主要针对大型企业,而HTTP服务主要针对中小企业。 因为RPC效率高,HTTP服务器开发迭代快。 总之,采用什么样的框架并不取决于市场上流行什么,而是要全面评价整个项目,在仔细比较两个开发框架对整个项目的影响的基础上,最后决定什么最适合那个项目必须根据地区具体分析情况,而不是为了使用RPC而在每个项目中使用RPC。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。