对于这个问题,个人觉得是没有对rpc有一个深入的了解,可以自己实现一下过程,相信比阅读多少参考文档更有效。对于这个问题,简单的区别下。涉及更深入知识请自行翻阅之前内容。

首先:

http 和 rpc 并不是一个并行概念。

http是超文本传输协议,应用层网络协议。

rpc不是协议,是指remote procedure call 远程过程调用,对不同应用间相互调用的一种描述。其调用协议通常包含传输协议和编码协议;支持http和tcp;

其次:

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

例如rpc框架提供的负载均衡,服务治理,自动熔断/降级,实现二进制传输等;

如果把一个http server容器上封装一层服务发现和函数代理调用,那它就已经可以做一个rpc框架了。

总结:

RPC是一种编程模式,把对服务器的调用抽象为过程调用,通常伴随着框架代码自动生成等功能。使用RPC做网络服务开发时,通常只需要实现服务器端的一个处理函数,其余的客户端调用,序列化反序列化,方法派发等都由框架或者生成的代码来完成,较大地减轻了网络服务开发和调用的复杂性。RPC框架更多的在内网中应用间调用使用,http 除了内网传输,更习惯用在跨网间,跨语言间调用。

既然有http 请求,为什么还要用rpc调用?相关推荐

  1. 既然有 HTTP 请求,为什么还要用 RPC 调用?

    HTTP协议,以其中的Restful规范为代表,其优势很大.它可读性好,且可以得到防火墙的支持.跨语言的支持.而且,在去年的报告中,Restful大有超过RPC的趋势. 本想引用下报告内容,无奈最近由 ...

  2. 既然有HTTP协议,为什么还要有RPC

    我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用的好好的,为什么还要用RPC协议? 于是就到网上去搜. 不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没 ...

  3. 既然有 HTTP 协议,为什么还要有 RPC

    我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用的好好的,为什么还要用RPC协议? 于是就到网上去搜. 不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没 ...

  4. python rpc调用_从0到1:全面理解 RPC 远程调用

    上一篇关于 WSGI 的硬核长文,不知道有多少同学,能够从头看到尾的,不管你们有没有看得很过瘾,反正我是写得很爽,总有一种将一样知识吃透了的错觉. 今天我又给自己挖坑了,打算将 rpc 远程调用的知识 ...

  5. RabbitMQ (五)实现类似Dubbo的RPC调用

    springboot对rabbitMQ的接口做了封装,要实现 request/reponse 模式的调用,只需要调用 rabbitTemplate.convertSendAndReceive 方法即可 ...

  6. 深入剖析通信层和RPC调用的异步化(上)

    <Netty 进阶之路>.<分布式服务框架原理与实践>作者李林锋深入剖析通信层和 RPC 调用的异步化.李林锋此后还将在 InfoQ 上开设 Netty 专题持续出稿,感兴趣的 ...

  7. RPC调用框架比较分析--转载

    原文地址:http://itindex.net/detail/52530-rpc-%E6%A1%86%E6%9E%B6-%E5%88%86%E6%9E%90 什么是RPC:  RPC(Remote P ...

  8. rpc 调用webservice怎样传递参数_五分钟让你了解RPC原理详解

    欢迎关注专栏[以架构赢天下]--每天持续分享Java相关知识点 以架构赢天下​zhuanlan.zhihu.com 以架构赢天下--持续分享Java相关知识点 每篇文章首发此专栏 欢迎各路Java程序 ...

  9. RPC调用框架比较分析

    什么是RPC: RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 简言之,RPC ...

  10. 怎么看调用的接口_Hadoop RPC调用实例分析

    以ClientProtocol接口中的rename RPC调用进行一次实例分析. rename方法在ClientProtocol接口中定义,它的两个参数是String类型的,不能直接通过网络传输. 我 ...

最新文章

  1. 【嵌入式】从STM32F103ZET6移植到STM32F103RCT6的流程
  2. CSR稀疏矩阵存储方式
  3. 图片上传(加水印、缩略图、远程保存)的简单例子
  4. mysql数据库安全配置规范_MySQL数据库安全配置规范操作
  5. JMS - QueueBrowser
  6. (3)WebApi客户端调用
  7. 编写自己的Matcher与如何让编译器识别被mock的重载函数
  8. 北航出品,CVPR 安全AI大赛第二名:梯度细化提高对抗传递性
  9. python linux开发_python之Linux开发环境安装
  10. 《线性代数及其应用》系列笔记
  11. 基于51单片机的交通灯设计
  12. 微信小程序如何测试?
  13. Postman保存二进制流数据
  14. HC-SR04超声波测距模块的原理介绍与代码实现
  15. 真知灼见|客户视图与工作台:金融行业呼叫中心领域驱动设计
  16. JAVA网络爬爬学习之HttpClient+Jsoup
  17. Git学习笔记及一些问题(廖雪峰版)
  18. 亚马逊erp系统亚马逊FBA系统货代仓储打包系统
  19. 是面试官放水,还是公司实在是太缺人?,字节原来这么容易进...
  20. 以下关于python函数说法错误的是def_以下关于Python函数的描述中,错误的是()

热门文章

  1. 装ubuntu_系统安装_win10下安装Ubuntu后,启动时无win10选项的解决办法。
  2. php 卷积神经网络,PyTorch上实现卷积神经网络CNN的方法
  3. 英寸和厘米的交互python_Python / PyQt4:如何找到显示器的尺寸(以英寸为单位)?...
  4. css3 animation 位置移动了怎么不占位置_手把手整理CSS3知识汇总【思维导图】
  5. Unix/Linux编程实践教程(1)---Unix系统编程概述
  6. 【2019南昌邀请赛网络赛I:】Max Answer(st表+单调栈(新模版)+分析)
  7. lisp用entmake生产圆柱体_液态基酒生产
  8. Python降低XGBoost 过度拟合多种方法
  9. OpenCV(一)---支持向量机 SVM
  10. Charles 导出所有request, response, cookie, 导出为HTTP Archive .har