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

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

3天内不再提示

四种远程调用的区别和联系

汽车玩家 来源:今日头条 作者:莫辂 2020-04-21 17:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

首先看下这张图要实现网络通信,底层要通过TCP的三次握手连接,而我们最熟悉的应该是HTTP协议,那Http是什么呢,是怎样在不同的计算机上完成数据传输的呢,并且有了http为什么还出现了webservice,消息队列,RPC等其他协议呢。

四种远程调用的区别和联系

1.Http

http 译为超文本传输协议,用于分布式,协作式超媒体信息系统的应用协议,它属于是OSI参考模型中应用层,并且是建立在传输层上(TCP)协议之上的一种应用。

http 有以下特点

http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。

简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。

HTTP是独立于媒体的:HTTP允许传输任意类型的数据对象。客户端和服务器都需要使用适当的MIME类型指定内容类型。

无连接:HTTP客户端(浏览器)发起HTTP请求,并在发出请求后,客户端等待响应。服务器处理该请求并发送回响应,然后客户端断开连接。因此,客户端和服务器仅在当前请求和响应期间相互了解。

无状态:HTTP是无连接的,因此HTTP是无状态协议的直接结果。连接断开后之前的连接状态将丢失。

这里简单说一下它的主要特性。http 几句话是无法说清楚的,要知道http权威指南用700多页来介绍http。那么有了这么牛B的http为什么还出现了webservice呢,下面我们简单了解下webservice。

2.WebService

引用w3cshool中对它特性的描述:

Web Services 是应用程序组件

Web Services 使用开放协议进行通信

Web Services 是独立的(self-contained)并可自我描述

Web Services 可通过使用UDDI来发现 Web Services 可被其他应用程序使用 XML 是 Web Services 的基础

此外。公开网络上的现有功能,可以将它说为一个服务发布供其他程序调用。Web Services允许各种应用程序相互通信并在彼此之间共享数据和服务。其他应用程序也可以使用Web服务。Web服务使用标准化的行业标准协议进行通信。Web服务使用SOAP 基于HTTP协议,因此可以使用现有的低成本来实现Web服务。通过使用 Web services,您的应用程序可向全世界发布功能或消息。Web services 使用 XML 来编解码数据,并使用 SOAP 开放的协议来传输数据。这样说来 webservice 就是XML和HTTP的组合。webservice使用基于xml的soap协议,soap有以下特点:

SOAP 指简易对象访问协议

SOAP 是一种通信协议

SOAP 用于应用程序之间的通信

SOAP 是一种用于发送消息的格式

SOAP 被设计用来通过因特网进行通信

SOAP 独立于平台

SOAP 独立于语言

SOAP 基于 XML

SOAP 很简单并可扩展

SOAP 允许您绕过防火墙

SOAP 将被作为 W3C 标准来发展

由于webservice基于http,那webservcie理论上是可以被http替代的。由于webservice 使用基于xml的soap协议。xml可以表示复杂的数据类型,且容易读写。

3.RPC

RPC全称 Remote Procedure Call,即远程过程调用。它是一种强大的技术,可用于构建基于客户端服务器的分布式应用程序。 它基于扩展传统的本地过程调用,以便被调用过程不必与调用过程存在于相同的地址空间中。 这两个进程可能在同一系统上,也可能是通过网络连接在一起的不同系统上。它用于客户端-服务器应用程序。 当计算机程序使过程或子例程在不同的地址空间中执行时,将使用RPC机制,该过程被编码为常规过程调用,而程序员无需关注远程交互编码细节。

四种远程调用的区别和联系

RPC调用过程

RPC的基本特征:

所调用的过程在另一个进程中,该进程可能驻留在另一台机器中。

进程不共享地址空间。

参数仅按值传递。

RPC在服务器进程的环境中执行。

它不提供对调用过程环境的访问。

那么为什么要使用RPC呢?RPC的优点

RPC提供摘要,即对用户隐藏了网络通信的消息传递性质。

RPC通常会省略许多协议层以提高性能。 即使很小的性能改进也很重要,因为程序可能经常调用RPC。

RPC允许不仅在本地环境中在分布式环境中使用应用程序。

使用RPC代码进行重写/重新开发的工作量得以最小化。

RPC支持的面向过程和面向线程的模型。

http和RPC各有优缺点,他们是互补的。

4.MQ

消息队列允许应用程序通过相互发送消息进行通信。 当目标程序忙或未连接时,消息队列提供临时消息存储。消息队列提供异步通信协议,该协议是一种将消息放入消息队列并且不需要立即响应来继续处理的系统。 例如电子邮件, 发送电子邮件后,发件人将继续处理其他事情,而无需接收者的立即响应。 这种处理消息的方式使生产者与使用者解耦,从而使他们不需要同时与消息队列进行交互。

四种远程调用的区别和联系

消息队列调用

消息队列的主要特征:

异步业务处理能力

程序之间没有直接连接,降低系统间的耦合,系统更容易扩展和维护

流量削锋 ,服务器按照其处理能力从消息队列中订阅消息进行处理。

提升了系统间通信可靠性, 消息队列将对尝试访问队列的应用程序进行身份验证,并允许您使用加密来加密通过网络传输以及在队列中传输的消息

那么使用MQ的好处就一目了然了。

总结:计算机之间通信需底层都要通过TCP连接来传输数据, HTTP,WebService,RPC,MQ他们有各自的优缺点,并且是有联系的,以及使用场景。通俗的说远程调用抽象的核心都是RPC,而RPC也可以基于http。 http简单、直接、开发方便,但是请求中包含一些无用信息;WebService传输的信息较大,传输效率低;RPC性能消耗低,传输效率高,但是比较抽象,可能简单场景需要复杂的配置.MQ可异步传输。系统可用性降低、系统复杂性提高、一致性问题。那么如果需要使用他们,就要根据自己的业务需求和场景来使用这些调用方式了。

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

    关注

    0

    文章

    538

    浏览量

    35553
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1433

    浏览量

    83763
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    变频器四种制动方式

    解决的核心问题。目前主流的变频器制动方式主要包括能耗制动、回馈制动、直流制动和电容制动四种,每种方式各具特点,适用于不同的工况场景。
    的头像 发表于 03-25 16:31 255次阅读

    低成本CAN扩展方案怎么选?CSM331A四种模式一次说清

    MCU需要CAN功能但预算有限?CSM331A协议转换芯片用SPI/UART就能扩展,四种模式从快到稳任你选。ZLG致远电子推出的CSM331A协议转换芯片,配合一个CAN收发器,就能通过SPI
    的头像 发表于 02-09 11:50 428次阅读
    低成本CAN扩展方案怎么选?CSM331A<b class='flag-5'>四种</b>模式一次说清

    是德示波器DSOX1202A与电脑的四种连接方式及操作步骤详解

    是德科技(Keysight)DSOX1202A示波器作为高精度电子测量设备,广泛应用于电子工程、通信测试与自动化调试场景。为实现数据实时采集、波形分析与远程控制,用户需通过USB、LAN、GPIB或串口将示波器与电脑互联。本文将结合官方指南与实操经验,系统介绍四种连接方式
    的头像 发表于 01-13 17:48 1856次阅读
    是德示波器DSOX1202A与电脑的<b class='flag-5'>四种</b>连接方式及操作步骤详解

    SMT加工中,双面板与层板的区别,你知道几个?

    23年PCBA一站式行业经验PCBA加工厂家今天为大家讲讲SMT加工中双面板与层板有什么区别?SMT加工中双面板与层板的区别。在SMT加工中,双面板与
    的头像 发表于 01-13 09:26 304次阅读

    C语言与C++的区别联系

    C语言和C++到底是什么关系? 首先C++和C语言本来就是两不同的编程语言,但C++确实是对C语言的扩充和延伸,并且对C语言提供后向兼容的能力。对于有些人说的“C++完全就包含了C语言”的说法也
    发表于 12-24 07:23

    WTK6900FC鼾声识别芯片在四种助眠场景中的应用

    WTK6900FC鼾声识别芯片在四种助眠场景中的应用 “跟你说个搞笑的事情,我刚才午睡的时候被我自己的呼噜声吵醒了...”这是真实发生在身边的事情。 ​ 过去对于打呼噜这件事情,大家的态度就是“累了
    的头像 发表于 12-02 16:40 854次阅读
    WTK6900FC鼾声识别芯片在<b class='flag-5'>四种</b>助眠场景中的应用

    Jumia API 调用:覆盖非洲市场的实操指南

    一、调用前的大核心准备(适配 Jumia 地区特性)​ Jumia API 的调用准备需围绕 “地区差异化” 展开,这是区别于其他电商 API 的关键前提。​ 1. 开发者账号与 A
    的头像 发表于 11-25 17:12 983次阅读

    四种MOS管驱动电路方案介绍

    这个电控界的MOS管,但想让它听话,还得靠驱动电路!整理了 4 常用方案。
    的头像 发表于 10-17 09:33 4695次阅读
    <b class='flag-5'>四种</b>MOS管驱动电路方案介绍

    一图看懂绿电直连的四种玩法

    通过 “总览框架 + 分模式图解” 的形式,用可视化逻辑拆解绿电直连的四种核心模式,涵盖每种模式的核心特征、适用场景、参与主体三大关键信息,帮你快速区分不同 “玩法” 的差异与适配性。
    的头像 发表于 10-15 10:18 1610次阅读
    一图看懂绿电直连的<b class='flag-5'>四种</b>玩法

    数字化与信息化有什么区别联系

    数字化与信息化是紧密相关但又有区别的两个概念,它们在推动社会和经济发展中扮演着不同角色。以下从定义、核心目标、技术基础、应用范围、实施路径及相互联系六个方面进行详细分析: 一、定义差异 数字化
    的头像 发表于 10-11 16:48 1826次阅读
    数字化与信息化有什么<b class='flag-5'>区别</b>和<b class='flag-5'>联系</b>

    从入门到精通:基于开源代码的BLE四种模式开发详解

    通过分析BLE低功耗蓝牙的四种核心工作模式,结合可下载、可修改的开放源码,本教程为开发者提供一套系统、实用的开发学习路径。 BLE(Bluetooth Low Energy): 也称为
    的头像 发表于 10-09 18:00 697次阅读
    从入门到精通:基于开源代码的BLE<b class='flag-5'>四种</b>模式开发详解

    全网最全CSA3412,BCT4340,VL162,MCU/ USB3.1 正反插10G bps四种解决方案

    CSA3412,BCT4340,VL162,MCU/ USB3.1 全网最全正反插10G bps四种解决方案
    的头像 发表于 09-25 03:06 950次阅读
    全网最全CSA3412,BCT4340,VL162,MCU/ USB3.1 正反插10G bps<b class='flag-5'>四种</b>解决方案

    知识分享 | 功能安全vsSOTIF:区别联系

    )在确保出行安全方面发挥着至关重要的作用。那么,功能安全和SOTIF之间有什么区别?它们在哪些特性上又存在联系
    的头像 发表于 08-06 13:53 1809次阅读
    知识分享 | 功能安全vsSOTIF:<b class='flag-5'>区别</b>与<b class='flag-5'>联系</b>

    SC、LC、FC和ST四种类型中哪类价格最贵

    在SC、LC、FC和ST四种类型的光纤跳线中,FC类型的光纤跳线通常价格相对较高,具体分析如下: FC类型的光纤跳线: 特点:采用金属螺纹套筒连接,具有较高的稳定性和抗拉强度,适用于高振动环境或需要
    的头像 发表于 07-25 10:16 1341次阅读

    RDMA简介3之四种子协议对比

    RDMA协议共有四种子协议,分别为InfiniBand、iWARP、RoCE v1和RoCE v2协议。这四种协议使用统一的RDMA API,但在具体的网络层级实现上有所不同,如图1所示,接下来将
    发表于 06-04 16:05