天天看點

常見遠端調用協定

RMI協定

RMI 協定采用 JDK 标準的 java.rmi.*實作,采用阻塞式短連接配接和 JDK 标準序列

化方式,Java 标準的遠端調用協定。

連接配接個數:多連接配接

連接配接方式:短連接配接

傳輸協定:TCP

傳輸方式:同步傳輸

序列化:Java 标準二進制序列化

适用範圍:傳入傳出參數資料包大小混合,消費者與提供者個數差不多,可傳

檔案。

适用場景:正常遠端服務方法調用,與原生 RMI 服務互操作

Hessian協定

Hessian 協定用于內建 Hessian 的服務,Hessian 底層采用 Http 通訊,采用

Servlet 暴露服務,Dubbo 預設内嵌 Jetty 作為伺服器實作

基于 Hessian 的遠端調用協定。

連接配接個數:多連接配接

連接配接方式:短連接配接

傳輸協定:HTTP

傳輸方式:同步傳輸

序列化:Hessian 二進制序列化适用範圍:傳入傳出參數資料包較大,提供者比消費者個數多,提供者壓力較

大,可傳檔案。

适用場景:頁面傳輸,檔案傳輸,或與原生 hessian 服務互操作

http

采用 Spring 的 HttpInvoker 實作

基于 http 表單的遠端調用協定。

連接配接個數:多連接配接

連接配接方式:短連接配接

傳輸協定:HTTP

傳輸方式:同步傳輸

序列化:表單序列化(JSON)

适用範圍:傳入傳出參數資料包大小混合,提供者比消費者個數多,可用浏覽

器檢視,可用表單或 URL 傳入參數,暫不支援傳檔案。

适用場景:需同時給應用程式和浏覽器 JS 使用的服務。

Webservice

基于 CXF 的 frontend-simple 和 transports-http 實作

基于 WebService 的遠端調用協定。

連接配接個數:多連接配接

連接配接方式:短連接配接

傳輸協定:HTTP

傳輸方式:同步傳輸

序列化:SOAP 文本序列化

适用場景:系統內建,跨語言調用。

Thrif

繼續閱讀