回覆列表
  • 1 # 網路圈

    從事開發行業的朋友們都聽說過一些名詞,比如SOA、Web Service 、RPC、RESTful 等,特別是架構領域這些術語出現的頻率也是很高的。這幾個名詞其實說的都是同一個東西,那就是服務,但很多朋友分不清它們之間的區別,下面我給大家梳理一下。

    RPC是啥?

    RPC代表的是遠端過程呼叫(Remote Procedure Call),它主要是面向方法(函式)級別的,我們只需要呼叫特定的方法來實現特定功能,而不需要了解其細節是如何實現的。它是Client/Server這種模式的。

    說得通俗點就是,比如一套系統有一些核心程式碼(方法/函式)你不希望在此係統中植入(為了保密,防止被使用者破解),而是將這個核心程式碼放置在其它的伺服器上執行,此係統只能呼叫遠端伺服器上的特定方法來實現功能。

    RPC給我們的直觀感覺就是,可以像呼叫本地方法(函式)一樣去呼叫遠端伺服器上的方法(函式),具體用什麼協議(如:HTTP、TCP、UDP、或自定義協議)、以什麼形式(如:Json、XML、Binary、Protobuf)來傳遞資料都是可以自定義的。

    Web Service又是啥?

    權威解釋是:Web Service是一種跨語言跨作業系統的遠端呼叫技術。如果單從字面去理解,它就是以WEB形式(HTTP協議)提供的Service服務,這是一種提供Service服務的形式,可以理解為是一類服務方式的統稱。

    RPC和Web Service的異同

    1、相同點

    RPC和Web Service作用是非常相似的,都是遠端呼叫技術,都是一種概念。

    2、不同點

    RPC用什麼協議,以什麼形式傳輸資料是可以定製的,技術上可選擇的餘地更大;而Web Service則是以WEB形式提供的服務,協議自然就是HTTP/HTTPS了,可選擇餘地較小。

    常見的Web Service可以用SOAP、RPC、RESTful來實現,但不能說RPC是Web Service的子級,因為RPC並不一定非要使用HTTP協議來實現。

    RPC效能一般優於Web Service,在體系上RPC比Web Service要複雜的多。

  • 中秋節和大豐收的關聯?
  • 形容全能的成語有哪些?