首页 > 其他分享 >RPC接口和http接口的区别

RPC接口和http接口的区别

时间:2024-04-21 16:36:50浏览次数:27  
标签:http 接口 链接 RPC HTTP 连接 服务端 客户端

  • 最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的
  • HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹

RPC服务

  • RPC架构

一个完整的RPC架构里面包含了四个核心的组件,分别是Client ,Server,Client Stub以及Server Stub,这个Stub大家可以理解为存根。分别说说这几个组件:

客户端(Client),服务的调用方。

服务端(Server),真正的服务提供者。

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

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

PC主要是用在大型企业里面,因为大型企业里面系统繁多,业务线复杂,而且效率优势非常重要的一块,这个时候RPC的优势就比较明显了。实际的开发当中是这么做的,项目一般使用maven来管理。

比如我们有一个处理订单的系统服务,先声明它的所有的接口(这里就是具体指Java中的interface),然后将整个项目打包为一个jar包,服务端这边引入这个二方库,然后实现相应的功能,客户端这边也只需要引入这个二方库即可调用了。

为什么这么做?主要是为了减少客户端这边的jar包大小,因为每一次打包发布的时候,jar包太多总是会影响效率。另外也是将客户端和服务端解耦,提高代码的可移植性

 

长链接和短链接的区别主要体现在以下几个方面:

  • 连接状态不同。长链接(Long Connection)是在客户端和服务器之间建立的一种持久性连接,这种连接保持持续的连接状态,用于实现双向通信,适用于需要频繁通信的情况,如在线聊天、在线游戏和实时数据流传输等;短链接(Short Connection)是在客户端和服务器之间建立的一种临时性连接,这种连接在每次通信后立即断开,适用于不频繁的通信,如传统的HTTP/1.0请求响应模型。
  • 资源占用不同。长链接通过保持连接打开,可以减少每次通信的连接和断开开销,从而提高效率,但同时可能增加服务器的资源消耗;短链接在每次通信结束后断开连接,不需要维持连接状态,从而节省资源,特别适用于并发量大,但每个用户无需频繁操作的场景,如Web网站。
  • 性能特点不同。长链接可以提高应用程序的整体性能,减少网络流量和延迟;短链接提供更好的隔离和资源释放,特别是在客户端和服务器之间的通信较为分散时。

综上所述,长链接和短链接各有优势和适用场景,选择应根据具体的应用需求和场景来决定。

参考文档:https://www.jianshu.com/p/509cfb7f6869

标签:http,接口,链接,RPC,HTTP,连接,服务端,客户端
From: https://www.cnblogs.com/zhaikunkun/p/18149091

相关文章

  • 短链接口设计&禁用Springboot执行器端点/env的安全性
    短链接口设计//短链接服务跳转方式,实现短链接转长链接的请求。@GetMapping("/{code}")publicStringredirectUrl(@PathVariable("code")Stringcode){return"redirect:"+shortUrl.getLongUrl();}禁用Springboot执行器端点/env的安全性#关闭健康检查不安全接口end......
  • 抽象类和接口有什么区别
    接口和抽象类都是用来定义对象的公共行为的,两者本身不能实例化,但二者有以下7点不同:1.定义关键字不同:接口使用关键字interface来定义,抽象类使用关键字abstract来定义。2.继承或实现的关键字不同:接口使用implements关键字定义其具体实现,抽象类使用extends关键字实现继承。......
  • 泛型模板化设计使用-订单搜索接口
    泛型模板化设计使用-订单搜索接口1.定义订单搜索接口packagecom.example.core.mydemo.java.templateQuery;//暂不使用该接口//publicinterfaceSearchService<TextendsBaseRequest,FextendsBaseResponse>{publicinterfaceSearchService<T,F>{/***订单......
  • Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算
    Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算1.定义请求和返回对象的上下文对象packagecom.example.core.mydemo.java.filter;importjava.time.LocalDateTime;publicclassOrderReqContext{/***租客会员号*/StringmemNo;......
  • 接口加密传输设计及AES加解密代码DEMO
    接口加密传输设计及AES加解密代码DEMO接口加密的方案设计:可以将请求的json字符串aes加密,通过params字段传输,接口服务端接收到参数,先解密,然后转换成对象。继续业务逻辑的处理。(另外一种方案是:针对敏感字段aes加密,服务接收端对敏感字段来解密处理)RequestVo对象:privateS......
  • http://ccl.pku.edu.cn:8080/ccl_corpus/CCLCorpus_Readme.html
    北京大学CCL语料库简介语料库网址: http://ccl.pku.edu.cn:8080/ccl_corpusCCL语料库及其检索系统为纯学术非盈利性的。不得将CCL语料库检索系统及其产生的检索结果用于任何商业目的。CCL不承担由此产生的一切后果。CCL语料库仅供语言研究参考之用。语料本身的正确性需要您自......
  • 菜品分类模块删除接口+今天的图片不回显问题没有解决,明天再说。这篇随便写写吧,呕。+修
    点击删除按钮,删除菜品,也可以在左侧进行批量删除,故制定批量删除接口。删除规则如下 其中被套餐关联的菜品不能删除,因为删除这些菜品直接影响到套餐删除菜品后,关联的口味也要删除,所以这个删除蛮复杂的,并不是那种单表直接删的简单操作  请求参数和返回数据: 涉及到的表有......
  • Go语言高并发与微服务实战专题精讲——远程过程调用 RPC——服务端注册实现原理分析
    远程过程调用RPC——服务端注册实现原理分析rpcserver代码参考我前一篇博文:https://www.cnblogs.com/zuoyang/p/18146870RPCServer端的RPC代码架构主要由两大部分构成:第一部分是服务方法的注册过程。在这个过程中,我们首先通过调用rpc.Register接口将服......
  • java中的接口
    java中的接口目录java中的接口特征接口回调接口和抽象类的异同总结特征接口使用interface关键字接口中的所有方法默认都是publicabstract修饰接口中所有的成员变量都是publicstaticfinal修饰接口没有构造方法,构造方法用于创建对象(接口没办法new对象),但是接口使用......
  • gRPC入门学习之旅(七)
    gRPC入门学习之旅(一)gRPC入门学习之旅(二)gRPC入门学习之旅(三)gRPC入门学习之旅(四)gRPC入门学习之旅(五)gRPC入门学习之旅(六)3.6、创建gRPC的桌面应用客户端 1.在VisualStudio2022菜单栏上选择“文件—》新建—》项目”。或者在VisualStudio2022的解决方......