(1)HTTP与RPC区别

news2024/11/7 1:31:18

定义

  • HTTP接口使用基于HTTP协议的URL传参调用
  • RPC接口则基于远程过程调用

http是一种协议 ,rpc是一种方法

RPC

RPC服务基本架构包含了四个核心的组件,分别是Client、Server、Clent Stub以及Server Stub。
在这里插入图片描述

  • Client (客户端):服务调用方、
  • Server(服务端):服务提供方。
  • Client Stub(客户端存根):存放服务端的地址消息,负责将客户端的请求参数打包成网络消息,然后通过网络发送给服务提供方。
  • Server Stub(服务端存根):接收客户端发送的消息,再将客户端请求参数打包成网络消息,然后通过网络远程发送给服务方。
流程RPC框架
  • gRPC Google公布 基于HTTP2.0协议 底层使用了Netty框架
  • Thrift Facebook
  • Dubbo 阿里集团

HTTP

通过HTTP URL调用的服务,浏览器访问本质上也算HTTP服务,不同的是需要客户端浏览器渲染服务端返回的结果。

HTTP与RPC区别

  1. 实现不同: RPC框架不是长连接,不必每次通信都要像HTTP那样三次握手,一般都有注册中心,RPC接口的发布、下线、动态扩展等对调用方是无感知的
  2. 传输协议不同:RPC可以基于TCP协议,也可以基于HTTP协议,HTTP只能基于HTTP协议
  3. 传输效率不同:RPC使用自定义的TCP协议,体积更小更快
  4. 性能消耗不同:RPC可以基于thrift实现高效的二进制传输,HTTP大部分是通过json实现的,字节大小和序列化耗时都比thrift要更消耗性能
  5. 负载均衡方式不同:RPC基本都自带了负载均衡策略,HTTP需要配置Nginx,HAProxy实现
  6. 服务治理(下游服务新增,重启,下线时如何不影响上游调用者):RPC能做到自动通知,不影响上游,HTTP需要事先通知,修改Nginx/HAProxy配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/624967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据可视化】2D/3D动画

## 2D动画 - transform ◼ CSS3 transform属性允许你旋转,缩放,倾斜或平移给定元素。 ◼ Transform是形变的意思(通常也叫变换),transformer就是变形金刚 ◼ 常见的函数transform function有: ---- 平移:translate(x, y) ---- 缩放:scale…

600万用户在用,中国版Access上市,Excel和WPS用户直呼:太棒了

中国版的Access到底有没有? 大家都知道微软的Access功能很强大,作为office里的一款数据库软件,不仅能帮助我们进行数据的分析和处理,而且再深入一点,还可以用VBA实现一些高级的用法。不仅国外有很多用户,就…

【C++】deque的用法

目录 一、容器适配器二、deque的介绍三、deque的使用及缺陷1、deque的构造函数2、deque的元素访问接口3、deque的 iterator的使用4、deque的增删查改4、deque的缺陷5、为什么选择deque作为stack和queue的底层默认容器 一、容器适配器 在了解deque前,我们先讲一讲什…

2023年,我被迫裸辞....

作为IT行业的大热岗位——软件测试,只要你付出了,就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的,但放眼望去,哪个工作不是这样的呢?会有哪家公司愿意养一些闲人呢?…

STM32F4_RS485、RS232

目录 1. 485简介 2. 串口UART存在的问题 3. RS232协议 4. RS485协议 6. 硬件分析 7. 实验程序 7.1 main.c 7.2 RS485.c 7.3 RS485.h RS232的高电平1的逻辑为-5V~-15V,低电平0的逻辑为5V~15V。高电平和TTL的0~5V不兼容,传输的距离也不够长。 1. …

SpringCloud Eureka 的详细讲解及示意图-下

SpringCloud Eureka 服务注册与发现-下 搭建EurekaServer 集群- 实现负载均衡&故障容错 为什么需要集群Eureka Server 示意图 说明 1. 微服务RPC 远程服务调用最核心的是实现高可用 2. 如果注册中心只有1 个,它出故障,会导致整个服务环境不可用…

乘法器介绍

阵列乘法器 实现乘法的比较常用的方法是类似与手工计算乘法的方式: 对应的硬件结构就是阵列乘法器(array multiplier)它有三个功能:产生部分积,累加部分积和最终相加。 阵列乘法器的关键路径为(下图标出了两条可能的关…

Clion开发STM32之ESP8266系列(四)

前言 上一篇: Clion开发STM32之ESP8266系列(三) 本篇主要内容 实现esp8266需要实现的函数串口3中断函数的自定义(这里没有使用HAL提供的)封装esp8266服务端的代码和测试 正文 主要修改部分 核心配置头文件(添加一些宏定义) sys_core_conf.h文件中…

【报错】检索 COM 类工厂中 CLSID 为 {28E68F9A-8D75-11D1-8DC3-3C302A000000} 的组件失败错误

【报错】检索 COM 类工厂中 CLSID 为 {28E68F9A-8D75-11D1-8DC3-3C302A000000} 的组件失败错误 情况描述解决方法修改目标平台CPU类型下载组件文件复制到指定路径运行指定命令行程序 情况描述 在使用C#进行工控软件开发,需要连接通过OPC连接DCS系统时,需…

STM32--ESP8266物联网WIFI模块(贝壳物联)--温湿度数据上传服务器显示

本文适用于STM32F103C8T6等MCU,其他MCU可以移植,完整资源见文末链接 一、简介 随着移动物联网的发展,各场景下对于物联控制、数据上传、远程控制的诉求也越来越多,基于此乐鑫科技推出了便宜好用性价比极高的wifi物联模块——ESP…

PowerShell系列(五):PowerShell通过脚本方式运行笔记

目录 一、四种执行方式介绍 1、当前文件夹运行命令 2、直接指定完整文件路径执行 3、通过cmd命令直接执行 4、通过Windows计划任务执行PowerShell脚本 二、通过脚本方式执行命令的优势 往期回顾 PowerShell系列(一):PowerShell介绍和cm…

Java 异常处理和最佳实践(含案例分析)

概述 最近在代码 CR 的时候发现一些值得注意的问题,特别是在对 Java 异常处理的时候,比如有的同学对每个方法都进行 try-catch,在进行 IO 操作时忘记在 finally 块中关闭连接资源等等问题。回想自己对 java 的异常处理也不是特别清楚&#x…

第一章 软件工程概论

文章目录 第一章 软件工程概论1. 软件危机1.1.1 软件危机的介绍1.1.2 产生软件危机的原因与软件本身特点有关软件开发与维护的方法不正确有关 1.1.3 消除软件危机的途径例题 软件工程1.2.1 软件工程的介绍1.2.2 软件工程的基本原理1.2.3 软件工程方法学1. 传统方法学2. 面向对象…

集群间 ssh 互信免密码登录失败处理

一、问题描述 某次GreePlum集群免密配置过程中,需要使用普通用户实现ssh免密登录,前方反馈root用户已可完成免密登录,但普通用户同样配置,未生效,提示需输入密码才可以。 现场环境: 二、问题分析处理 …

安卓packageinfo的知识点

PackageInfo类包含AndroidManifest.xml文件的信息。 一些常用的属性如下: 获得PackageInfo //获取指定包名的packageInfo,并且包含所有的内容提供者 val pack context.packageManager.getPackageInfo(context.packageName,PackageManager.GET_PROVIDE…

GPT从入门到精通之 Tensorflow2.x 中如何使用 GPT 模型

Tensorflow2.x 中如何使用 GPT 模型 GPT 模型是自然语言处理(NLP)领域中一种重要的预训练模型。 TensorFlow2.x 是目前最流行的机器学习和深度学习框架之一,对 GPT 模型的支持度也非常高。在本篇文章中,我们将详细介绍如何使用 T…

前后端交互四、跨域与JSONP

零、文章目录 前后端交互四、跨域与JSONP 1、同源策略和跨域 (1)同源 如果两个页面URL的协议,域名和端口都相同,则两个页面具有相同的源。 例如,下表给出了相对于 http://www.test.com/index.html 页面的同源检测&…

【iOS_Swift_Alamofire实现网络请求】

文章目录 前言导入库原生网络请求单例封装一个原生网络请求Alamofire用法Alamofire的返回响应将返回的data转为字典/字符串 总结 前言 学习swift继续延续之前的思路,对照着OC学,从UI起手,学习到对应的自适应布局。 今天再次学习了swift的原生…

MySQL分库分表全攻略:从小白到大神的进阶指南!

大家好,我是小米,一个热爱技术的程序员。今天,我来和大家聊一下关于MySQL中的分库分表技术,相信对于开发者和DBA来说是一个非常重要的话题。 什么是分库分表 首先,我们先来了解一下什么是分库分表。分库分表是指将原本…

Apifox(1)比postman更优秀的接口自动化测试平台

Apifox介绍 Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman Swagger Mock JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自…