0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

四種遠程調(diào)用的區(qū)別和聯(lián)系

汽車玩家 ? 來源:今日頭條 ? 作者:莫輅 ? 2020-04-21 17:26 ? 次閱讀

首先看下這張圖要實現(xiàn)網(wǎng)絡通信,底層要通過TCP的三次握手連接,而我們最熟悉的應該是HTTP協(xié)議,那Http是什么呢,是怎樣在不同的計算機上完成數(shù)據(jù)傳輸?shù)哪?,并且有了http為什么還出現(xiàn)了webservice,消息隊列,RPC等其他協(xié)議呢。

四種遠程調(diào)用的區(qū)別和聯(lián)系

1.Http

http 譯為超文本傳輸協(xié)議,用于分布式,協(xié)作式超媒體信息系統(tǒng)的應用協(xié)議,它屬于是OSI參考模型中應用層,并且是建立在傳輸層上(TCP)協(xié)議之上的一種應用。

http 有以下特點

http協(xié)議支持客戶端/服務端模式,也是一種請求/響應模式的協(xié)議。

簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。

HTTP是獨立于媒體的:HTTP允許傳輸任意類型的數(shù)據(jù)對象??蛻舳撕头掌鞫夹枰褂眠m當?shù)腗IME類型指定內(nèi)容類型。

無連接:HTTP客戶端(瀏覽器)發(fā)起HTTP請求,并在發(fā)出請求后,客戶端等待響應。服務器處理該請求并發(fā)送回響應,然后客戶端斷開連接。因此,客戶端和服務器僅在當前請求和響應期間相互了解。

無狀態(tài):HTTP是無連接的,因此HTTP是無狀態(tài)協(xié)議的直接結果。連接斷開后之前的連接狀態(tài)將丟失。

這里簡單說一下它的主要特性。http 幾句話是無法說清楚的,要知道http權威指南用700多頁來介紹http。那么有了這么牛B的http為什么還出現(xiàn)了webservice呢,下面我們簡單了解下webservice。

2.WebService

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

Web Services 是應用程序組件

Web Services 使用開放協(xié)議進行通信

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

Web Services 可通過使用UDDI來發(fā)現(xiàn) Web Services 可被其他應用程序使用 XML 是 Web Services 的基礎

此外。公開網(wǎng)絡上的現(xiàn)有功能,可以將它說為一個服務發(fā)布供其他程序調(diào)用。Web Services允許各種應用程序相互通信并在彼此之間共享數(shù)據(jù)和服務。其他應用程序也可以使用Web服務。Web服務使用標準化的行業(yè)標準協(xié)議進行通信。Web服務使用SOAP 基于HTTP協(xié)議,因此可以使用現(xiàn)有的低成本來實現(xiàn)Web服務。通過使用 Web services,您的應用程序可向全世界發(fā)布功能或消息。Web services 使用 XML 來編解碼數(shù)據(jù),并使用 SOAP 開放的協(xié)議來傳輸數(shù)據(jù)。這樣說來 webservice 就是XML和HTTP的組合。webservice使用基于xml的soap協(xié)議,soap有以下特點:

SOAP 指簡易對象訪問協(xié)議

SOAP 是一種通信協(xié)議

SOAP 用于應用程序之間的通信

SOAP 是一種用于發(fā)送消息的格式

SOAP 被設計用來通過因特網(wǎng)進行通信

SOAP 獨立于平臺

SOAP 獨立于語言

SOAP 基于 XML

SOAP 很簡單并可擴展

SOAP 允許您繞過防火墻

SOAP 將被作為 W3C 標準來發(fā)展

由于webservice基于http,那webservcie理論上是可以被http替代的。由于webservice 使用基于xml的soap協(xié)議。xml可以表示復雜的數(shù)據(jù)類型,且容易讀寫。

3.RPC

RPC全稱 Remote Procedure Call,即遠程過程調(diào)用。它是一種強大的技術,可用于構建基于客戶端服務器的分布式應用程序。 它基于擴展傳統(tǒng)的本地過程調(diào)用,以便被調(diào)用過程不必與調(diào)用過程存在于相同的地址空間中。 這兩個進程可能在同一系統(tǒng)上,也可能是通過網(wǎng)絡連接在一起的不同系統(tǒng)上。它用于客戶端-服務器應用程序。 當計算機程序使過程或子例程在不同的地址空間中執(zhí)行時,將使用RPC機制,該過程被編碼為常規(guī)過程調(diào)用,而程序員無需關注遠程交互編碼細節(jié)。

四種遠程調(diào)用的區(qū)別和聯(lián)系

RPC調(diào)用過程

RPC的基本特征:

所調(diào)用的過程在另一個進程中,該進程可能駐留在另一臺機器中。

進程不共享地址空間。

參數(shù)僅按值傳遞。

RPC在服務器進程的環(huán)境中執(zhí)行。

它不提供對調(diào)用過程環(huán)境的訪問。

那么為什么要使用RPC呢?RPC的優(yōu)點

RPC提供摘要,即對用戶隱藏了網(wǎng)絡通信的消息傳遞性質(zhì)。

RPC通常會省略許多協(xié)議層以提高性能。 即使很小的性能改進也很重要,因為程序可能經(jīng)常調(diào)用RPC。

RPC允許不僅在本地環(huán)境中在分布式環(huán)境中使用應用程序。

使用RPC代碼進行重寫/重新開發(fā)的工作量得以最小化。

RPC支持的面向過程和面向線程的模型。

http和RPC各有優(yōu)缺點,他們是互補的。

4.MQ

消息隊列允許應用程序通過相互發(fā)送消息進行通信。 當目標程序忙或未連接時,消息隊列提供臨時消息存儲。消息隊列提供異步通信協(xié)議,該協(xié)議是一種將消息放入消息隊列并且不需要立即響應來繼續(xù)處理的系統(tǒng)。 例如電子郵件, 發(fā)送電子郵件后,發(fā)件人將繼續(xù)處理其他事情,而無需接收者的立即響應。 這種處理消息的方式使生產(chǎn)者與使用者解耦,從而使他們不需要同時與消息隊列進行交互。

四種遠程調(diào)用的區(qū)別和聯(lián)系

消息隊列調(diào)用

消息隊列的主要特征:

異步業(yè)務處理能力

程序之間沒有直接連接,降低系統(tǒng)間的耦合,系統(tǒng)更容易擴展和維護

流量削鋒 ,服務器按照其處理能力從消息隊列中訂閱消息進行處理。

提升了系統(tǒng)間通信可靠性, 消息隊列將對嘗試訪問隊列的應用程序進行身份驗證,并允許您使用加密來加密通過網(wǎng)絡傳輸以及在隊列中傳輸?shù)南?/p>

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

總結:計算機之間通信需底層都要通過TCP連接來傳輸數(shù)據(jù), HTTP,WebService,RPC,MQ他們有各自的優(yōu)缺點,并且是有聯(lián)系的,以及使用場景。通俗的說遠程調(diào)用抽象的核心都是RPC,而RPC也可以基于http。 http簡單、直接、開發(fā)方便,但是請求中包含一些無用信息;WebService傳輸?shù)男畔⑤^大,傳輸效率低;RPC性能消耗低,傳輸效率高,但是比較抽象,可能簡單場景需要復雜的配置.MQ可異步傳輸。系統(tǒng)可用性降低、系統(tǒng)復雜性提高、一致性問題。那么如果需要使用他們,就要根據(jù)自己的業(yè)務需求和場景來使用這些調(diào)用方式了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HTTP
    +關注

    關注

    0

    文章

    510

    瀏覽量

    31322
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1372

    瀏覽量

    79142
收藏 人收藏

    評論

    相關推薦

    MSP430F4250的四種模式分別是在什么情況下使用呢?

    我是一名初學者,看了書知道MSP430F4250的AD轉換模式有四種,我想知道這四種轉化模式有什么區(qū)別,分別應該在什么情況下使用。各位高手能否為我解答哈,在下不勝感激。因為是初學者,有很多東西都不知道,能盡量詳細就盡量哈,謝謝
    發(fā)表于 01-06 06:16

    被問爆的四種供電方式,來啦~

    4G模組的外部電源供電設計十分重要,對系統(tǒng)穩(wěn)定、射頻性能都有直接影響。 常見的物聯(lián)網(wǎng)應用場景下,供電方式有四種: LDO供電方式 DCDC供電方式 鋰電池供電以及充電方式 不可充電鋰亞/鋰錳電池供電
    的頭像 發(fā)表于 12-30 15:40 ?181次閱讀
    被問爆的<b class='flag-5'>四種</b>供電方式,來啦~

    DAC61404 SPI應該是四種模式中的哪種?

    DAC61404 SPI應該是四種模式中的哪種?
    發(fā)表于 11-27 06:18

    雙軸測徑儀的四種樣式!

    閉合。用于外徑、橢圓度或寬度厚度的檢測。 這四種樣式的測徑儀使用用途僅前兩和后兩區(qū)別,看產(chǎn)線上是否有生產(chǎn)板材、扁線等需要測量寬度與厚度的產(chǎn)品。 需要注意的是,以上
    發(fā)表于 08-27 17:42

    濾波電路的四種類型是什么

    濾波電路是電子電路中非常重要的一部分,它主要用于對信號進行頻率選擇,即允許特定頻率范圍內(nèi)的信號通過,而阻止其他頻率的信號。濾波電路根據(jù)其特性可以分為四種基本類型:低通濾波器(Low-Pass
    的頭像 發(fā)表于 08-08 16:25 ?3084次閱讀

    負反饋的四種類型是什么

    負反饋是電子系統(tǒng)中常用的一技術,它通過將系統(tǒng)輸出的一部分信號以某種方式反饋到輸入端,以減小輸出信號與期望信號之間的差異,從而提高系統(tǒng)的穩(wěn)定性和性能。負反饋主要分為四種類型:電壓串聯(lián)負反饋、電壓并聯(lián)負反饋、電流串聯(lián)負反饋和電流并聯(lián)負反饋。
    的頭像 發(fā)表于 08-08 16:15 ?4531次閱讀

    負反饋的四種類型及判斷方法

    負反饋,又稱為負反饋調(diào)節(jié),是指在一個系統(tǒng)中,當系統(tǒng)輸出的某些變化對輸入產(chǎn)生抑制作用時,系統(tǒng)會自動調(diào)節(jié)以維持穩(wěn)定狀態(tài)的現(xiàn)象。負反饋在生物、工程、經(jīng)濟等多個領域都有廣泛的應用。本文將介紹負反饋的四種
    的頭像 發(fā)表于 08-02 11:01 ?2718次閱讀

    簡述四種基本觸發(fā)器及其功能

    在數(shù)字電路設計中,觸發(fā)器是一基本且重要的存儲元件,用于存儲二進制信息(即0和1)。根據(jù)功能和應用場景的不同,觸發(fā)器可以分為多種類型,其中四種基本觸發(fā)器包括RS觸發(fā)器、JK觸發(fā)器、D觸發(fā)器和T觸發(fā)器。以下是對這四種基本觸發(fā)器及其
    的頭像 發(fā)表于 07-27 14:59 ?1.1w次閱讀

    介紹MCUboot支持的四種升級模式(2)

    介紹MCUboot支持的四種升級模式,分別是Overwrite、Swap、Direct XIP和加載到RAM中執(zhí)行。由于FSP不支持第四種——加載到RAM中執(zhí)行,因為我們重點介紹前三。
    的頭像 發(fā)表于 06-13 10:56 ?975次閱讀
    介紹MCUboot支持的<b class='flag-5'>四種</b>升級模式(2)

    電氣設備的狀態(tài)有哪四種

    電氣設備的狀態(tài)可以分為四種:正常狀態(tài)、異常狀態(tài)、故障狀態(tài)和緊急狀態(tài)。這四種狀態(tài)涵蓋了電氣設備在運行過程中可能遇到的各種情況。本文將詳細分析這四種狀態(tài)的特點、原因、影響以及相應的處理措施。 一、正常
    的頭像 發(fā)表于 06-05 16:47 ?4695次閱讀

    四種電源防接反電路

    防反接電路用于防止電子元器件因正負極接反而燒毀。常見的防反接電路有四種:二極管串聯(lián)、整流橋、NMOS和PMOS。二極管串聯(lián)利用二極管的單向導電性,整流橋則能正反接都導通但會消耗電能。NMOS和PMOS的防反接電路設計則通過控制電流路徑來實現(xiàn)正負極的保護。
    發(fā)表于 05-22 16:19

    如何理解IGBT的四種SOA?

    如何理解IGBT的四種SOA? IGBT的四種SOA表示了IGBT器件在不同工作狀態(tài)下的安全操作區(qū)域。這四種SOA是:Continuous SOA、Limited SOA、Pulse SOA
    的頭像 發(fā)表于 02-18 11:04 ?1140次閱讀

    四種編程語言之間的區(qū)別聯(lián)系

    編程語言是一人與計算機之間進行交流的方式,不同的編程語言有著不同的特點和用途。本文將對四種常見的編程語言——Python、Java、C++和JavaScript進行比較,分析它們的區(qū)別聯(lián)系
    的頭像 發(fā)表于 02-05 14:16 ?1616次閱讀

    A/D轉換的四種誤差

    針對A/D轉換中可能出現(xiàn)的誤差,主要分為以下四種情況,漂移誤差、線型比例誤差、非線性誤差、非單調(diào)性誤差。還有那些能夠引起AD轉換出現(xiàn)比較大的誤差類別? 先說AD轉換是怎么取值的,假設輸入信號0-3V
    發(fā)表于 01-30 14:19

    電子負載的四種功能實現(xiàn)原理

    電子負載的四種功能實現(xiàn)原理? 電子負載是一用于模擬負載、測試和評估電源、電池和其他電子設備的工具。它可以模擬電子負載的特性,并能夠提供不同的負載條件。電子負載主要通過四種功能來實現(xiàn):恒流負載、恒阻
    的頭像 發(fā)表于 01-18 14:13 ?2851次閱讀