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 文本序列化
适用場景:系統內建,跨語言調用。