rpc和http的区别,使⽤场景

ops/2024/10/19 9:35:58/
 a. 区别:
传输协议

RPC:可以基于TCP协议,也可以基于HTTP协议

HTTP:基于HTTP协议

传输效率

RPC:使⽤⾃定义的TCP协议,可以让请求报⽂体积更⼩,或者使⽤HTTP2协议,也可以很好的减少报⽂的体积,提⾼传输效率

HTTP:如果是基于HTTP1.1的协议,请求中会包含很多⽆⽤的内容,如果是基于HTTP2.0,那么简单的封装以下是可以作为⼀个RPC来使⽤的,这时标准RPC框架更多的是服务治理

性能消耗,主要在于序列化和反序列化的耗时

RPC:可以基于thrift实现⾼效的⼆进制传输

HTTP:⼤部分是通过json来实现的,字节⼤⼩和序列化耗时都⽐thrift要更消耗性能

负载均衡

RPC:基本都⾃带了负载均衡策略

HTTP:需要配置Nginx,HAProxy来实现服务治理(下游服务新增,重启,下线时如何不影响上游调⽤者)RPC,能做到⾃动通知,不影响上游HTTP,需要事先通知,修改Nginx/HAProxy配置

b. 总结:

RPC主要⽤于公司内部的服务调⽤,性能消耗低,传输效率⾼,服务治理⽅便。HTTP主要⽤于对外的异构环境,浏览器接⼝调⽤,APP接⼝调⽤,第三⽅接⼝调⽤等。


http://www.ppmy.cn/ops/24368.html

相关文章

【Web】D^3CTF之浅聊d3pythonhttp——TE-CL请求走私

目录 step0 题目信息 step1 jwt空密钥伪造 step1.5 有关TE&CL的lab step2 TE-CL请求走私 payload1 payload2 step0 题目信息 注意到题目源码前端是flask写的,后端是web.py写的 frontend from flask import Flask, request, redirect, render_templat…

Chrome 插件如何开发?

开发 Chrome 插件涉及几个关键步骤,包括了解 Chrome 插件的架构、编写必要的代码、测试和发布。以下是开发 Chrome 插件的基本流程: 1. 了解 Chrome 插件的基础知识: - Chrome 插件通常由 HTML、CSS 和 JavaScript 文件组成。 - 它们可…

数据结构C[栈]

在C语言中,栈是一种常见的数据结构,它遵循"先进后出"(Last In First Out,LIFO)的原则。栈通常用于存储函数调用、局部变量和临时数据等。 C语言中对栈的描述可以从以下几个方面来介绍:1. 栈的实现…

yo!这里是网络入门初识

目录 前言 基本概念 网络 协议 地址 网络传输流程 OSI七层模型 TCP/IP四层(五层)模型 流程图 数据封装&&分用 后记 前言 对于上一个专栏——Linux操作系统,我们学习了操作系统的基础知识以及基本的系统编程,其…

纯java构建的个人博客,qwkxq.cn

博客初创,欢迎提各种意见(比如审美,排版啥的orz)~ 开始考虑用博客框架构建,但是调研一圈下来发现框架虽然好用,功能全面,但是可控性很差,很难自定义。最终决定从0开始使用springboot…

2024.5.7-9亚洲3D打印、增材制造展览会

本次安策将在2024年5月7日-9日亚洲3D打印、增材制造展览会现场展示相关安全产品,欢迎莅临参观交流。本次会议安策将带给大家智能制造喝数字化制造行业的最新安全应用案例。 欢迎来到数字化制造的新殿堂,在此点亮您的灵感! 加入我们一起探索3D打印、增材制…

稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)

背景 OpenIM包含多个关键组件,每个都是系统功能必不可少的一部分。具体来说,MongoDB 用于持久化存储;Redis 用作缓存;Kafka 用于消息队列;Zookeeper 用于服务发现;Minio 用于对象存储。这些组件的众多可能会…

万兴PDF专家 PDFelement Pro v10.3.8 破姐版!

🧑‍💻万兴PDF专家 PDFelement Pro v10.3.8 破姐版 (https://docs.qq.com/sheet/DRVVxTHJ3RXJFVHVr)