1 回答

TA貢獻1906條經驗 獲得超3個贊
dubbo支持多種遠程調用方式,例如dubbo RPC(二進制序列化 + tcp協議)、http invoker(二進制序列化 + http協議,至少在開源版本沒發現對文本序列化的支持)、hessian(二進制序列化 + http協議)、WebServices (文本序列化 + http協議)等等,但缺乏對當今特別流行的REST風格遠程調用(文本序列化 + http協議)的支持?! ∮需b于此,我們基于標準的Java REST API——JAX-RS 2.0(Java API for RESTful Web Services的簡寫),為dubbo提供了接近透明的REST調用支持。由于完全兼容Java標準API,所以為dubbo開發的所有REST服務,未來脫離dubbo或者任何特定的REST底層實現一般也可以正常運行。
特別值得指出的是,我們并不需要完全嚴格遵守REST的原始定義和架構風格。即使著名的Twitter REST API也會根據情況做適度調整,而不是機械的遵守原始的REST風格。
附注:我們將這個功能稱之為REST風格的遠程調用,即RESTful Remoting(抽象的遠程處理或者調用),而不是叫RESTful RPC(具體的遠程“過程”調用),是因為REST和RPC本身可以被認為是兩種不同的風格。在dubbo的REST實現中,可以說有兩個面向,其一是提供或消費正常的REST服務,其二是將REST作為dubbo RPC體系中一種協議實現,而RESTful Remoting同時涵蓋了這個面向。
添加回答
舉報