RPC和web service有什麼異同?

Prajna211


從事開發行業的朋友們都聽說過一些名詞,比如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要複雜的多。

以上就是我的觀點,對於這個問題大家是怎麼看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我瞭解更多科技知識!


分享到:


相關文章: