您好,登錄后才能下訂單哦!
dubbo推薦用什么協議?
Dubbo通訊協議
第一、dubbo
Dubbo 缺省協議采用單一長連接和 NIO 異步通訊,適合于小數據量大并發的服務調用,以及服務消費者機器數遠大于服務提供者機器數的情況。
反之,Dubbo 缺省協議不適合傳送大數據量的服務,比如傳文件,傳視頻等,除非請求量很低。
特性
缺省協議,使用基于 mina 1.1.7 和 hessian 3.2.1 的 tbremoting 交互。
連接個數:單連接
連接方式:長連接
傳輸協議:TCP
傳輸方式:NIO 異步傳輸
序列化:Hessian 二進制序列化
適用范圍:傳入傳出參數數據包較小(建議小于100K),消費者比提供者個數多,單一消費者無法壓滿提供者,盡量不要用 dubbo 協議傳輸大文件或超大字符串。
適用場景:常規遠程服務方法調用
第二、hessian
Hessian 1 協議用于集成 Hessian 的服務,Hessian 底層采用 Http 通訊,采用 Servlet 暴露服務,Dubbo 缺省內嵌 Jetty 作為服務器實現。
Dubbo 的 Hessian 協議可以和原生 Hessian 服務互操作,即:
提供者用 Dubbo 的 Hessian 協議暴露服務,消費者直接用標準 Hessian 接口調用
或者提供方用標準 Hessian 暴露服務,消費方用 Dubbo 的 Hessian 協議調用。
特性
連接個數:多連接
連接方式:短連接
傳輸協議:HTTP
傳輸方式:同步傳輸
序列化:Hessian二進制序列化
適用范圍:傳入傳出參數數據包較大,提供者比消費者個數多,提供者壓力較大,可傳文件。
適用場景:頁面傳輸,文件傳輸,或與原生hessian服務互操作
第三、Http
基于 HTTP 表單的遠程調用協議,采用 Spring 的 HttpInvoker 實現 1
特性
連接個數:多連接
連接方式:短連接
傳輸協議:HTTP
傳輸方式:同步傳輸
序列化:表單序列化
適用范圍:傳入傳出參數數據包大小混合,提供者比消費者個數多,可用瀏覽器查看,可用表單或URL傳入參數,暫不支持傳文件。
適用場景:需同時給應用程序和瀏覽器 JS 使用的服務。
第四、WebService
基于 WebService 的遠程調用協議,基于 Apache CXF 1 的 frontend-simple 和 transports-http 實現 2。
可以和原生 WebService 服務互操作,即:
提供者用 Dubbo 的 WebService 協議暴露服務,消費者直接用標準 WebService 接口調用,
或者提供方用標準 WebService 暴露服務,消費方用 Dubbo 的 WebService 協議調用。
特性
連接個數:多連接
連接方式:短連接
傳輸協議:HTTP
傳輸方式:同步傳輸
序列化:SOAP 文本序列化
適用場景:系統集成,跨語言調用
第五、 RMI 協議
rmi://
RMI 協議采用 JDK 標準的 java.rmi.* 實現,采用阻塞式短連接和 JDK 標準序列化方式。
注意:如果正在使用 RMI 提供服務給外部訪問 1,同時應用里依賴了老的 common-collections 包 2 的情況下,存在反序列化安全風險 3。
特性
連接個數:多連接
連接方式:短連接
傳輸協議:TCP
傳輸方式:同步傳輸
序列化:Java 標準二進制序列化
適用范圍:傳入傳出參數數據包大小混合,消費者與提供者個數差不多,可傳文件。
適用場景:常規遠程服務方法調用,與原生RMI服務互操作
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。