1.本质区别

 http是协议,rpc是方法,rpc的实现可能也会用到httphttp在应用层,rpc在传输层(长连接,少了三次握手,不过http2.0也可以链接复用了)http中所使用的报文中有效字节数仅仅占约 30%,也就是70%的时间用于传输元数据废编码。当然实际情况下报文内容可能会比这个长,但是报头所占的比例也是非常可观的。而rpc仅通过序列化发送有效数据,省去了很多无效的数据,提高传输效率。http需要可读性强,包括输入、输出,解析等。rpc就像调用方法一样调用,很简单。

2.其他区别

rpc一般都是和服务相关的简单来说成熟的rpc库相对http容器,更多的是封装了“服务发现”,"负载均衡",“熔断降级”一类面向服务的高级特性。可以这么理解,rpc框架是面向服务的更高级的封装。如果把一个http servlet容器上封装一层服务发现和函数代理调用,那它就已经可以做一个rpc框架了。

所以为什么要用rpc调用?

因为良好的rpc调用是面向服务的封装,针对服务的可用性和效率等都做了优化。单纯使用http调用则缺少了这些特性。

分布式系统以及在一个大系统内服务较多的情况下,服务间的调用当然是越简单越好,而rpc的调用仅涉及到传输协议+序列化协议,而不用考虑一些类似接口可读性等。可以更方便的调用。

rpc调用和http调用有什么区别相关推荐

  1. 直观讲解一下 RPC 调用和 HTTP 调用的区别!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:浮生忆梦 blog.csdn.net/m0_3811 ...

  2. 直观讲解一下RPC调用和HTTP调用的区别

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:浮生忆梦 blog.csdn.net/m0_38110132 ...

  3. 把接口调用打成jar包的类怎么写_直观讲解RPC调用和HTTP调用的区别

    来源 :浮生忆梦 很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~N ...

  4. RPC调用和HTTP调用的区别你知道吗

    前言 很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive! ...

  5. 详解RPC远程调用和消息队列MQ的区别

    谈到分布式架构,就不得不谈到分布式架构的基石RPC. 什么是RPC RPC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制. RPC服 ...

  6. 调用http_【学习充电】直观讲解一下 RPC 调用和 HTTP 调用的区别!

    很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单 ...

  7. java队列_RPC远程调用和消息队列MQ的区别

    RPC和MQ同样都是用于分布式系统的两个很重要的技术,都有服务提供者.消费者的概念,可在一定程度上对系统进行解耦.但两者之间还是有区别的,本篇简单介绍~ 一.RPC RPC(Remote Proced ...

  8. 同步调用和异步调用两者之间的区别

    前言   提到同步调用和异步调用两者的区别,首先笔者是从微服务间通讯方式角度出发来阐述这两者的区别. 同步通讯 调用方需要等待执行方的调用结果.(就像打电话一样,需要实时响应) 典型就是:Dubbo的 ...

  9. oracle创建函数和调用存储过程和调用函数的例子(区别)

    创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...

  10. android app通过Geth RPC接口实现远程调用

    记录一下APP怎么通过以太坊的RPC接口实现远程调用.此过程的环境为Window7和Android studio2.2.3.以web3_clientVersion为例.更多用法参考Geth JSON- ...

最新文章

  1. linux搭建--ubuntu使用qemu-kvm,libvirt搭建虚拟机,并搭建libvmi来虚拟机自省(三)
  2. python文本编辑pycharm_PyCharm的基本使用
  3. Android跑马灯
  4. 关系代数的自然连接符号_初中数学知识清单之代数式的认识
  5. 一个web版的计算器
  6. 设计模式2—结构型模式
  7. CSC 121, 122.. MAT 181, 182, 252, 271, 281, 474.. ECN 272, 273, 372, 472
  8. [BZOJ5329][Sdoi2018]战略游戏 圆方树+虚树
  9. 安卓ListView行详细内容展示页编写和下拉刷新实现
  10. 支持全球科研抗疫,艾柏森成功研发Omicron变异株重组蛋白
  11. 学编程一定要数学很好吗?看到网友这样说,我松了一口气 ...
  12. 读《蔡康永的说话之道》
  13. Cannot get property '......' on extra properties extension as it does not exist
  14. android 跳过检查,绕过安卓应用检测项
  15. SQL求几几何平均数
  16. Sublime 设置快捷键让html在浏览器中打开
  17. 计算机硬件最小储存单位,构成储存器的最小单位是什么
  18. Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建
  19. VSCode的prettier插件怎么格式化html文件才好
  20. css的浮动与清除理解

热门文章

  1. 语音转写(讯飞开放平台)工具类
  2. java自己写一个消息队列_Java语言快速实现简单MQ消息队列服务
  3. 函数对称性常见公式_初中函数公式大全
  4. 易语言MYQQ框架群管机器人如何获取用户信息
  5. termux如何下载metasploit(msf)
  6. 永磁同步电机矢量控制(六)——MTPA最大转矩电流比控制
  7. 博途PLC 1200/1500PID PID_Temp 加热制冷双输出+级联控制(串级控制)
  8. 如何将手机号码批量导入手机通讯录
  9. linux 安装核显驱动程序,在Ubuntu系统上安装英特尔核显驱动安装器的方法
  10. mysql字典_mysql常用字典表(完整版)