RPC 对比 HTTP

news2024/11/28 14:49:12

初识RPC

  • RPC
    • 远程方法调用(Remote Procedure Call)
    • 大多用在服务治理领域
      • 基本都是分布式环境中的注册中心来负责新服务的注册、服务续约、服务下线、服务销毁
      • 国内 Dubbo 是应用最广的 RPC 框架
      • 国外 gRPC
    • RPC协议
      • 无论哪种RPC方案,都要自定义一套RPC协议规范。
      • 方法寻址
        • eureka 没有方法寻址这一说,无论是 feign 还是 RestTemplate 都要给定服务名+url路径。
        • RPC就和本地方法一样,不用给出服务名和路径,因此需要借助反射等技术获取当前服务的特征量,运用到自己的方法逻辑上,找到正确的服务提供方。
      • 对象序列化/反序列化

初识RPC

RPC vs REST HTTP

  • 接口风格
    • RPC(动词命名)
      • queryProduct
      • 面向执行过程
    • REST(名词)
      • {GET}/product?id=3
      • 面向所操作的资源

RPC vs REST HTTP

服务治理 RPC vs HTTP

RPCHTTP
应用层协议RPC协议,底层基于TCP超文本传输协议,底层基于TCP
编程友好程度配置简单高效,接口拿来就用配置繁琐,资源定位,GET/POST…
传输效率应用gzip等压缩技术HTTP携带的信息臃肿,报文中有效信息占比小
框架实现难度难难难,但和我们没关系简单

服务治理 RPC vs HTTP

那么问题来了

问:RPC那么好,为啥还用Spring Cloud和Eureka ?

答:RPC再好也就是个服务治理框架,能有Spring Cloud全家桶牛吗 ?

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

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

相关文章

你好,法语!A2知识点总结(3)

3.句型 3.1疑问 注意1 主谓倒装的疑问句式,主语必须是代词。 •主语是名词,不能直接倒装,要人为加进去一个代替主语的代词放在动词后面,“-”连接 •EX: Votre pre est professeur? •Est-votre pre professeur? •Votre pre e…

Kafka的设计原理

Kafka的设计原理和使用场景一、Kafka简介二、Kafka的架构2.1、Kafka 一些重要概念2.2、工作流程2.3、副本原理2.4、分区和主题的关系2.5、生产者2.5.1、分区可以水平扩展2.5.2、分区策略2.6、消费者2.6.1、消费方式2.6.2、分区分配策略2.7、数据可靠性保证2.7.1、副本数据同步策…

Linux基础知识

目录 流行的Linux发行版本 Linux系统的启动顺序 禁止使用ping命令 鉴定故障解决办法 user 不在 sudoers 文件中。此事将被报告解决办法 修改文件或目录的所属用户与权限 1、chgrp:更改文件属组 2、chown:更改文件属主,也可以同时更改文…

Agent 与对象的辨析

如果说对象是70年代以来软件界最激动人心的革新之一,那么,Agent的相关理论和技术,为分布式开放系统的设计与实现提供了新的途径,可以称之为软件开发的又一重大突破。讨论问题的前提是概念的澄清,什么是对象&#xff1f…

【学习笔记49】JavaScript的this指向

一、this指向 每一个函数内部都有一个关键字thisthis的值, 和函数的调用有关, 与函数书写无关 1. 普通调用方式 一个普通的全局函数, 在正常调用的情况下, this window function fn() {console.log(this); }fn() // this window2. 函数放置到对象 如果将函数放置到对象…

图数据技术护航网络安全 - Neo4j 大中华区总经理 方俊强

网络数字化及人工智能为许多行业来革命性的进步,但与此同时,网络安全领域产生的问题也日益严峻。人工智能进攻性风险和网络威胁领域的发展正在重新定义企业安全,从而给企业带来了更高的挑战。如何守护网络安全,成为企业深化数字化…

CSDN第十一场竞赛

目录 1.比赛详情 2.竞赛详情 3.原题回顾 (1).圆小艺 思路模拟 代码实现 (2). K皇把妹 思路模拟 代码实现 (3).筛选宝物 思路模拟 代码实现 (4).圆桌 思路模拟 代码实现 4.总结 1.比赛详情 报名地址:https://edu.csdn.net/contest/detail/24?utm_sou…

目标检测论文解读复现之二十:基于改进Yolov5的地铁隧道附属设施与衬砌表观病害检测方法

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0…

14个SpringBoot优化小妙招

1. 定义配置文件信息 有时候我们为了统一管理会把一些变量放到 yml 配置文件中 例如 用 ConfigurationProperties 代替 Value 使用方法 定义对应字段的实体 Data // 指定前缀 ConfigurationProperties(prefix "developer") Component public class DeveloperPro…

力扣(LeetCode)813. 最大平均值和的分组(C++)

动态规划 本题需要用到前缀和,前缀和需要将下标 iii 后移一位,所以我们将状态的下标 iii 也后移一位;由于状态转移依赖于 j−1j-1j−1 ,我们将 jjj 的下标后移一位。 class Solution { public:double largestSumOfAverages(vecto…

2022天梯赛练习集(2022.9-2022.10)

使用函数判断完全平方数 没有加(int)过不了 int IsSquare(int n){if((int)sqrt(n) * sqrt(n) ! n) return 0;else return 1; } 使用函数求余弦函数的近似值 double funcos(double e, double x){double sum 1, item 1;for(int i 0; fabs(item) >…

Tmuxs -高效使用Linux terminal

Tmuxs -高效使用Linux terminal前言what?重要概念安装Tmux 常用命令Tmux 常用内部命令窗口(window)指令:面板(pane)指令:如何用鼠标调整pane大小配置生效参考配置参考前言 这个利器绝对可以提升…

eMMC编程基础 -(二)eMMC基础介绍

eMMC编程基础 -(二)eMMC基础介绍1 eMMC 简介1.1 eMMC系统概述1.2 eMMC 的整体架构如下图片所示:2 Flash Memory1 eMMC 简介 eMMC 是 embedded MultiMediaCard 的简称。 eMMC 是对 MMC 的一个拓展,以满足更高标准的性能、成本、体…

文件包含笔记

很多语言支持使用包含文件,这样允许开发者把可重复使用的代码存入单个文件中,在未来需要使用时,将它包含在其他代码文件中即可使用。 如果是像 C/C 这种编译语言,即使可以包含任意文件,若没有调用其中函数也不会有什么…

【从零开始学微服务】05.微服务的优势和不足

大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。 没有“银弹” 在一些电影中,“银弹”被视作能迅速杀死狼人的武器,是杀死狼人的灵丹妙药。“银弹”常被比喻为解决复杂问题的良方或高招。 由于软件的复杂…

11.27

一.进制转换 这道题的思路就是先把每个数模对应的进制.再除以,就得到对应的, 因为可能会有16进制,所以直接弄一个字符串数组,按照"0123456789ABCDEF"顺序存储,再用模找里面对应的就可以了 但是有可能是负数,所以我们需要在此之前判断一下 如果用字符串临时拼接会产…

2008年武汉高校630操作系统真题B卷

操作系统————核心系统软件 竞争计算机系统资源的基本单位————进程 UNIX————分时操作系统 操作系统中必不可少的调度————进程调度 进程和程序的本质区别————前者是动态后者是静态 磁带————顺序存储文件 某进程在运行过程中需要等待从磁盘上读入数…

tensorflow-serving docker模型部署(以mnist为例)

✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Tensorflow 文章目录前言一、环境介绍二、tensorflow-serving docker安装三、单模型部署 (以官方demo saved_model_half_plus_two_cpu为例)1、docker模型部署2、python requests模型预测四、多模型部署 (以mni…

算法提升:图的拓扑排序算法

目录 概念 思路 代码 概念 拓扑序列:一些活动,其中某些活动必须在另一些活动完成之后才能开始,一定是无环的有向图,称为AOV网。 拓扑排序,其实就是对一个有向图构造拓扑序列的过程。构造时会有两个结果&#xff1a…

Go中赋值和转换关系

Go中的赋值跟类型转换: 在java中反射是可以获取继承关系,而go语言实际是不支持继承的,所以必须是相同的类型才能使用AssignableTo(),ConvertibleTo() package mainimport ("fmt""reflect" )type User struct {Name string } func demo(){user:User{Name:…