0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HTTP和RPC的区别与联系

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-11-23 08:55 次阅读

HTTP和RPC的相同点:底层通讯都是基于socket,都可以实现远程调用,都可以实现服务调用服务。

HTTP和RPC的不同点:

RPC:框架有:dubbo、cxf、(RMI远程方法调用)Hessian

当使用RPC框架实现服务间调用的时候,要求服务提供方和服务消费方 都必须使用统一的RPC框架,要么都dubbo,要么都cxf

操作系统在同一编程语言内使用

优势:调用快、处理快

http:框架有:httpClient

当使用http进行服务间调用的时候,无需关注服务提供方使用的编程语言,也无需关注服务消费方使用的编程语言,服务提供方只需要提供restful风格的接口,服务消费方,按照restful的原则,请求服务,即可

跨系统跨编程语言的远程调用框架

优势:通用性强

服务发现

首先要向某个服务器发起请求,你得先建立连接,而建立连接的前提是,你得知道IP地址和端口。这个找到服务对应的IP端口的过程,其实就是服务发现。

在HTTP中,你知道服务的域名,就可以通过DNS服务去解析得到它背后的IP地址,默认80端口。

而RPC的话,就有些区别,一般会有专门的中间服务去保存服务名和IP信息,比如consul或者etcd,甚至是redis。想要访问某个服务,就去这些中间服务去获得IP和端口信息。由于dns也是服务发现的一种,所以也有基于dns去做服务发现的组件,比如CoreDNS。

可以看出服务发现这一块,两者是有些区别,但不太能分高低。

底层连接形式

以主流的HTTP1.1协议为例,其默认在建立底层TCP连接之后会一直保持这个连接(keep alive),之后的请求和响应都会复用这条连接,而RPC协议,也跟HTTP类似,也是通过建立TCP长链接进行数据交互,但不同的地方在于,RPC协议一般还会再建个连接池,在请求量大的时候,建立多条连接放在池内,要发数据的时候就从池里取一条连接出来,用完放回去,下次再复用,可以说非常环保。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTTP
    +关注

    关注

    0

    文章

    501

    浏览量

    31056
  • RPC
    RPC
    +关注

    关注

    0

    文章

    111

    浏览量

    11511
收藏 人收藏

    评论

    相关推荐

    Dubbo源码浅析(一)—RPC框架与Dubbo

    时,就像调用本地过程一样方便。 1.2 RPCHttp的关系 用一句话来总结就是: RPC是一种概念,http是一种协议,可以认
    的头像 发表于 08-16 15:18 627次阅读
    Dubbo源码浅析(一)—<b class='flag-5'>RPC</b>框架与Dubbo

    柔性机器人与刚性机器人区别联系

    柔性机器人和刚性机器人在结构、功能、应用场景等方面存在显著的区别,但也有一些联系。以下是它们的主要区别联系区别 1.结构材料 柔性机器
    的头像 发表于 07-21 15:37 527次阅读
    柔性机器人与刚性机器人<b class='flag-5'>区别</b>与<b class='flag-5'>联系</b>

    TSMaster RPC 基础入门:编程指导和使用说明

    介绍RPC模块前,我们先浅聊一下RPC的相关说明,以及在什么样的情况下需要了解本文。1.RPC说明远程过程调用(RPC,RemoteProcedureCall)是一种网络通信协议,使得
    的头像 发表于 07-13 08:21 766次阅读
    TSMaster <b class='flag-5'>RPC</b> 基础入门:编程指导和使用说明

    预训练和迁移学习的区别联系

    预训练和迁移学习是深度学习和机器学习领域中的两个重要概念,它们在提高模型性能、减少训练时间和降低对数据量的需求方面发挥着关键作用。本文将从定义、原理、应用、区别联系等方面详细探讨预训练和迁移学习。
    的头像 发表于 07-11 10:12 839次阅读

    神经元与神经网络的区别联系

    在人工智能和机器学习的领域中,神经元和神经网络是两个至关重要的概念。虽然它们都与人脑中的神经系统有着密切的联系,但在实际应用和理论研究中,它们各自扮演着不同的角色。本文旨在深入探讨神经元与神经网络之间的区别联系,以及它们在人工
    的头像 发表于 07-01 11:50 804次阅读

    鸿蒙开发通信与连接:ohos.rpc RPC通信

    本模块提供进程间通信能力,包括设备内的进程间通信(IPC)和设备间的进程间通信(RPC),前者基于Binder驱动,后者基于软总线驱动。
    的头像 发表于 06-21 09:40 491次阅读
    鸿蒙开发通信与连接:ohos.<b class='flag-5'>rpc</b> <b class='flag-5'>RPC</b>通信

    运动控制和过程控制的区别联系

    和过程控制的区别联系。 运动控制 定义: 运动控制是指对机械设备的运动进行精确控制,以实现预定的运动轨迹、速度和加速度。这种控制通常涉及到位置、速度和加速度的精确控制。 关键技术: 伺服电机控制: 使用伺服电机来实
    的头像 发表于 06-13 09:19 2686次阅读

    PLC与DCS的区别联系

    至关重要的控制系统。它们各自具有独特的特点和优势,并在不同的应用场景中发挥着重要作用。本文将对PLC和DCS的区别联系进行详细阐述,以帮助读者更好地理解这两种控制系统的特性和应用。
    的头像 发表于 05-28 16:35 5228次阅读

    fpga和单片机的区别联系 fpga和cpu区别

    fpga和单片机的区别联系 FPGA(现场可编程逻辑门阵列)和单片机在电子系统设计中都扮演着重要的角色,但它们之间存在明显的区别联系区别
    的头像 发表于 03-14 17:33 1048次阅读

    栅格数据与矢量数据的区别联系

    等方面存在一些区别联系。 一、区别 形态上的区别: 栅格数据是由固定大小的像素网格组成,每个像素都具有特定的数值。整个数据集由一个矩阵来表示,每个像素位置都有特定的值。矢量数据则是由
    的头像 发表于 02-25 15:08 9213次阅读

    鸿蒙OS跨进程IPC与RPC通信

    一、IPC与RPC通信概述 基本概念 IPC(Inter-Process Communication)与RPC(Remote Procedure Call)用于实现跨进程通信,不同的是前者
    发表于 02-17 14:20

    HarmonyOS跨进程通信—IPC与RPC通信开发

    一、IPC与RPC通信概述 基本概念 IPC(Inter-Process Communication)与RPC(Remote Procedure Call)用于实现跨进程通信,不同的是前者
    的头像 发表于 02-02 17:47 1224次阅读
    HarmonyOS跨进程通信—IPC与<b class='flag-5'>RPC</b>通信开发

    电感和电抗的区别联系

    电感和电抗的区别联系 电感和电抗是电学中的重要概念,它们在理论研究和实际应用中都有着重要的作用。本文将从定义、原理、特点和应用等方面详细介绍电感和电抗的区别联系。 一、电感的定义和
    的头像 发表于 01-03 17:26 3498次阅读

    线电压和相电压的区别联系

    线电压和相电压的区别联系 线电压和相电压是描述电力系统中不同电压形式的概念。它们之间存在区别联系,下面将详细介绍。 一、线电压和相电压的定义 1. 线电压(Line Voltage
    的头像 发表于 12-12 14:10 7230次阅读

    变量的声明和定义有什么区别联系

    变量的声明和定义是编程中的两个重要概念,它们在语法和语义上有一些区别联系。在本文中,我将详细介绍变量的声明和定义之间的区别联系。 首先,让我们从变量的定义开始。变量的定义是在程序中
    的头像 发表于 12-07 16:14 1062次阅读