1. 程式人生 > >dubbo 各個通訊協議之對比

dubbo 各個通訊協議之對比

對dubbo的協議的學習,可以知道目前主流RPC通訊大概是什麼情況,本文參考dubbo官方文件

dubbo共支援如下幾種通訊協議:

部分協議的特點和使用場景如下:

1、dubbo協議

Dubbo預設協議採用單一長連線和NIO非同步通訊,適合於小資料量大併發的服務呼叫,以及服務消費者機器數遠大於服務提供者機器數的情況。

複製程式碼
預設協議,使用基於mina1.1.7+hessian3.2.1的tbremoting互動。

連線個數:單連線
連線方式:長連線
傳輸協議:TCP
傳輸方式:NIO非同步傳輸
序列化:Hessian二進位制序列化
適用範圍:傳入傳出引數資料包較小(建議小於100K),消費者比提供者個數多,單一消費者無法壓滿提供者,儘量不要用dubbo協議傳輸大檔案或超大字串。
適用場景:常規遠端服務方法呼叫
複製程式碼 複製程式碼
為什麼要消費者比提供者個數多:
因dubbo協議採用單一長連線,
假設網路為千兆網絡卡(1024Mbit=128MByte),
根據測試經驗資料每條連線最多隻能壓滿7MByte(不同的環境可能不一樣,供參考),
理論上1個服務提供者需要20個服務消費者才能壓滿網絡卡。

為什麼不能傳大包:
因dubbo協議採用單一長連線,
如果每次請求的資料包大小為500KByte,假設網路為千兆網絡卡(1024Mbit=128MByte),每條連線最大7MByte(不同的環境可能不一樣,供參考),
單個服務提供者的TPS(每秒處理事務數)最大為:128MByte / 500KByte = 262。
單個消費者呼叫單個服務提供者的TPS(每秒處理事務數)最大為:7MByte 
/ 500KByte = 14。 如果能接受,可以考慮使用,否則網路將成為瓶頸。 為什麼採用非同步單一長連線: 因為服務的現狀大都是服務提供者少,通常只有幾臺機器, 而服務的消費者多,可能整個網站都在訪問該服務, 比如Morgan的提供者只有6臺提供者,卻有上百臺消費者,每天有1.5億次呼叫, 如果採用常規的hessian服務,服務提供者很容易就被壓跨, 通過單一連線,保證單一消費者不會壓死提供者, 長連線,減少連線握手驗證等, 並使用非同步IO,複用執行緒池,防止C10K問題。
複製程式碼

2、RMI

RMI協議採用JDK標準的java.rmi.*實現,採用阻塞式短連線和JDK標準序列化方式

複製程式碼
Java標準的遠端呼叫協議。

連線個數:多連線
連線方式:短連線
傳輸協議:TCP
傳輸方式:同步傳輸
序列化:Java標準二進位制序列化
適用範圍:傳入傳出引數資料包大小混合,消費者與提供者個數差不多,可傳檔案。
適用場景:常規遠端服務方法呼叫,與原生RMI服務互操作
複製程式碼

3、hessian

Hessian協議用於整合Hessian的服務,Hessian底層採用Http通訊,採用Servlet暴露服務,Dubbo預設內嵌Jetty作為伺服器實現

複製程式碼
基於Hessian的遠端呼叫協議。

連線個數:多連線
連線方式:短連線
傳輸協議:HTTP
傳輸方式:同步傳輸
序列化:Hessian二進位制序列化
適用範圍:傳入傳出引數資料包較大,提供者比消費者個數多,提供者壓力較大,可傳檔案。
適用場景:頁面傳輸,檔案傳輸,或與原生hessian服務互操作
複製程式碼

4、http

採用Spring的HttpInvoker實現

複製程式碼
基於http表單的遠端呼叫協議。

連線個數:多連線
連線方式:短連線
傳輸協議:HTTP
傳輸方式:同步傳輸
序列化:表單序列化(JSON)
適用範圍:傳入傳出引數資料包大小混合,提供者比消費者個數多,可用瀏覽器檢視,可用表單或URL傳入引數,暫不支援傳檔案。
適用場景:需同時給應用程式和瀏覽器JS使用的服務。
複製程式碼

5、webservice

複製程式碼
基於WebService的遠端呼叫協議。

連線個數:多連線
連線方式:短連線
傳輸協議:HTTP
傳輸方式:同步傳輸
序列化:SOAP文字序列化
適用場景:系統整合,跨語言呼叫。
複製程式碼

6、thrif

Thrift是Facebook捐給Apache的一個RPC框架,當前 dubbo 支援的 thrift 協議是對 thrift 原生協議的擴充套件,在原生協議的基礎上添加了一些額外的頭資訊,比如service name,magic number等。

相關推薦

dubbo 各個通訊協議對比

對dubbo的協議的學習,可以知道目前主流RPC通訊大概是什麼情況,本文參考dubbo官方文件 dubbo共支援如下幾種通訊協議: 部分協議的特點和使用場景如下: 1、dubbo協議 Dubbo預設協議採用單一長連線和NIO非同步通訊,適合於小資料量大併發的服務呼叫,以及服務消費者機器數遠大於服務提供者

dubbo(hessian)通訊協議對比

對dubbo的協議的學習,可以知道目前主流RPC通訊大概是什麼情況,本文參考dubbo官方文件dubbo共支援如下幾種通訊協議:部分協議的特點和使用場景如下:1、dubbo協議Dubbo預設協議採用單一長連線和NIO非同步通訊,適合於小資料量大併發的服務呼叫,以及服務消費者機器數遠大於服務提供者機器數的情況。

dubbo通訊協議對比

dubbo共支援如下幾種通訊協議: dubbo:// rmi:// hessian:// http:// webservice:// thrift:// memcached:// redis:// 部分協議的特點和使用場景如下: 1、dubbo協

關於dubbo通信協議對比

方式 個數 3.2 場景 互操作 tty div soap emc 對dubbo的協議的學習,可以知道目前主流RPC通信大概是什麽情況, dubbo共支持如下幾種通信協議: dubbo:// rmi:// hessian:// http:// webservice://

通訊協議序列化

轉載地址:blog.chinaunix.net/uid-27105712-id-3266286.html   通訊協議之序列化   通訊協議可以理解兩個節點之間為了協同工作實現資訊交換,協商一定的規則和約定,例如規定位元組序,各個欄位型別,使用什麼壓縮演算法或加密

通訊協議序列化TLV

通訊協議可以理解兩個節點之間為了協同工作實現資訊交換,協商一定的規則和約定,例如規定位元組序,各個欄位型別,使用什麼壓縮演算法或加密演算法等。常 見的有tcp,udo,http,sip等常見協議。協議有流程規範和編碼規範。流程如呼叫流程等信令流程,編碼規範規定所有信令和資

通訊協議Http、TCP、UDP詳解

都是通訊協議,也就是通訊時所遵守的規則,只有雙方按照這個規則“說話”,對方才能理解或為之服務。 TCP   HTTP   UDP三者的關係: TCP/IP是個協議組,可分為四個層次:網路介面層、網路層、傳輸層和應用層。 在網路層有IP協議、ICMP協議、ARP協議、R

四大即時通訊協議XMPP(Jabber)背景介紹(一)

四大即時通訊(IM)協議背景知識介紹 四大通訊協議分別為XMPP 協議、即時資訊和空間協議(IMPP)、空間和即時資訊協議(PRIM)、針對即時通訊和空間平衡擴充的程序開始協議SIP(SIMPLE)。 1. XMPP 協議     在這四種協議中,XMPP是最靈活的。XM

S7通訊協議你不知道的事兒

在電氣學習的路上,西門子PLC應該是我的啟蒙PLC,從早期的S7-300/400 PLC搭建Profibus-DP網路開始接觸,到後來的S7-200Smart PLC,再到現在的S7-1200/1500 PLC博途軟體,基本上西門子的每款PLC都接觸並使用過。 在上位機開發的路上,西門子PLC也一直是我鍾愛的

由於各個廠家的通訊協議都不兼容有些還必須獲得

tag 郵件傳輸 源地址 能夠 彩頁 它的 如果 通過 獲得 有時又稱為"數據鏈路測過"或"網絡接口層",通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。 網絡層 有時又稱為"網絡互聯層",處理分組在網

Hadoop HDFS通訊協議 與 HDFS體系結構

通訊協議:     上一篇談到SecondaryNameNode會定期與NameNode進行通訊,學過通訊原理的都知道要進行通訊,就得遵循某種協議,HDFS內的通訊也不例外,它的通訊協議都是構建在TCP/IP協議基礎之上的;     HDFS是一個部署在叢集上的分散式檔案

微控制器IIC通訊協議

概念 I2C(IIC,Inter-Integrated Circuit),兩線式序列匯流排,由PHILIPS公司開發用於連線微控制器及其外圍裝置。它是由資料線SDA和時鐘SCL構成的序列匯流排,可傳送和接收資料。在CPU與被控IC之間、IC與IC之間進行雙向傳送,高速IIC

iOS遠端真機iTunes與iPhone的通訊協議usbmuxd解析

       最開始研究與iPhone通訊, 都會想當然的google下usb協議, 必經iphone是通過usb線連線到電腦. 其實不然, iTunes是通過TCP協議與iPhone通訊的 usbmuxd        iTunes使用一種叫”usbmux

30、dubbo都支援哪些通訊協議以及序列化協議

1、面試題 dubbo支援哪些通訊協議?支援哪些序列化協議? 2、面試官心裡分析 上一個問題,說說dubbo的基本工作原理,那是你必須知道的,至少知道dubbo分成哪些層,然後平時怎麼發起rpc請求的,註冊、發現、呼叫,這些是基本的。 接著就可以針對底層進行深入的問問了,比如第一步就

爬蟲通訊協議

爬蟲之通訊協議  通訊協議   伺服器和客戶端進行資料互動的形式。 HTTP工作原理   HTTP協議工作於客戶端-伺服器架構上,瀏覽器作為HTTP客戶端通過URL伺服器的web伺服器傳送所有的請求,web伺服器根據接收到的請求後,想客戶端傳送響應資訊。 未完待續。。。  

USB(二)通訊協議

0、基本概念     一個【傳輸】(控制、批量、中斷、等時)由多個【事務】組成;一個【事務】(IN、OUT、SETUP)由一個或多個【Packet】組成。     包是USB總線上資料傳輸的最小單位,不能被打斷或干擾,否則會引發錯誤。若干個資料包組成一次事務傳輸,一次事務

Netty4.0學習筆記系列五:自定義通訊協議

實現的原理是通過Encoder把java物件轉換成ByteBuf流進行傳輸,通過Decoder把ByteBuf轉換成java物件進行處理,處理邏輯如下圖所示: 傳輸的Java bean為Person: package com.guowl.testobjcoder

【BLE】CC2541通訊協議

本篇博文最後修改時間:2016年12月12日,10:51。 一、簡介 本文以SimpleBLEPeripheral工程為例,介紹如何在一個可讀、可寫、可通知、20位元組長的特徵值char6基礎上,新增一個香瓜自定義的通訊協議,並用app傳送指令實現P11口上的LE

網路程式設計即時通訊程式(聊天室)------(一)通訊流程簡介及通訊協議定製

      在開始講之前,我想先跟大家描述一下,這個所謂的通訊程式具體是一個什麼樣的東西。該通訊程式類似一個弱版本的qq,登入時需要進行註冊,登入成功後,可以實現即時的通訊,群聊,私聊,同時還可傳檔案。先上個圖 服務端:                           

【XMPP協議】開發Android即時通訊APP瞭解XMPP(一)

目前正在忙公司專案,製作基於XMPP的即時通訊APP,為此必須先了解下XMPP協議,所以寫篇部落格加深下印象。 關於XMPP協議的相關介紹: XMPP(Extensible Messageing and Presence Protocol:可擴充套件訊息與存