「笔耕不辍」常见远程调用协议
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
Thrift 是 Facebook 捐給 Apache 的一個 RPC 框架,當前 dubbo 支持的 thrift
協議是對 thrift 原生協議的擴展,在原生協議的基礎上添加了一些額外的頭信
息,比如 service name,magic number 等
總結
以上是生活随笔為你收集整理的「笔耕不辍」常见远程调用协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 4】定时任务调度与进程服务
- 下一篇: CPU纯软件全虚拟化技术