Zookeeper註冊中心 |
Stable |
支持基於網絡的集羣方式,有普遍周邊開源產品,建議使用dubbo-2.3.3以上版本(推薦使用) |
依賴於Zookeeper的穩定性 |
可用於生產環境 |
|
Redis註冊中心 |
Stable |
支持基於客戶端雙寫的集羣方式,性能高 |
要求服務器時間同步,用於檢查心跳過時髒數據 |
可用於生產環境 |
|
Multicast註冊中心 |
Tested |
去中心化,不須要安裝註冊中心 |
依賴於網絡拓撲和路由,跨機房有風險 |
小規模應用或開發測試環境 |
|
Simple註冊中心 |
Tested |
Dogfooding,註冊中心自己也是一個標準的RPC服務 |
沒有集羣支持,可能單點故障 |
試用 |
|
Simple監控中心 |
Stable |
支持JFreeChart統計報表 |
沒有集羣支持,可能單點故障,但故障後不影響RPC運行 |
可用於生產環境 |
|
Dubbo協議 |
Stable |
採用NIO複用單一長鏈接,並使用線程池併發處理請求,減小握手和加大併發效率,性能較好(推薦使用) |
在大文件傳輸時,單一鏈接會成爲瓶頸 |
可用於生產環境 |
Alibaba |
Rmi協議 |
Stable |
可與原生RMI互操做,基於TCP協議 |
偶爾會鏈接失敗,需重建Stub |
可用於生產環境 |
Alibaba |
Hessian協議 |
Stable |
可與原生Hessian互操做,基於HTTP協議 |
需hessian.jar支持,http短鏈接的開銷大 |
可用於生產環境 |
|
Netty Transporter |
Stable |
JBoss的NIO框架,性能較好(推薦使用) |
一次請求派發兩種事件,需屏蔽無用事件 |
可用於生產環境 |
Alibaba |
Mina Transporter |
Stable |
老牌NIO框架,穩定 |
待發送消息隊列派發不及時,大壓力下,會出現FullGC |
可用於生產環境 |
Alibaba |
Grizzly Transporter |
Tested |
Sun的NIO框架,應用於GlassFish服務器中 |
線程池不可擴展,Filter不能攔截下一Filter |
試用 |
|
Hessian Serialization |
Stable |
性能較好,多語言支持(推薦使用) |
Hessian的各版本兼容性很差,可能和應用使用的Hessian衝突,Dubbo內嵌了hessian3.2.1的源碼 |
可用於生產環境 |
Alibaba |
Dubbo Serialization |
Tested |
經過不傳送POJO的類元信息,在大量POJO傳輸時,性能較好 |
當參數對象增長字段時,需外部文件聲明 |
試用 |
|
Json Serialization |
Tested |
純文本,可跨語言解析,缺省採用FastJson解析 |
性能較差 |
試用 |
|
Java Serialization |
Stable |
Java原生支持 |
性能較差 |
可用於生產環境 |
|
Javassist ProxyFactory |
Stable |
經過字節碼生成代替反射,性能比較好(推薦使用) |
依賴於javassist.jar包,佔用JVM的Perm內存,Perm可能要設大一些:java -XX:PermSize=128m |
可用於生產環境 |
Alibaba |
Jdk ProxyFactory |
Stable |
JDK原生支持 |
性能較差 |
可用於生產環境 |
|
Failover Cluster |
Stable |
失敗自動切換,當出現失敗,重試其它服務器,一般用於讀操做(推薦使用) |
重試會帶來更長延遲 |
可用於生產環境 |
Alibaba |
Failfast Cluster |
Stable |
快速失敗,只發起一次調用,失敗當即報錯,一般用於非冪等性的寫操做 |
若是有機器正在重啓,可能會出現調用失敗 |
可用於生產環境 |
Alibaba |
Failsafe Cluster |
Stable |
失敗安全,出現異常時,直接忽略,一般用於寫入審計日誌等操做 |
調用信息丟失 |
可用於生產環境 |
Monitor |
Failback Cluster |
Tested |
失敗自動恢復,後臺記錄失敗請求,定時重發,一般用於消息通知操做 |
不可靠,重啓丟失 |
可用於生產環境 |
Registry |
Forking Cluster |
Tested |
並行調用多個服務器,只要一個成功即返回,一般用於實時性要求較高的讀操做 |
須要浪費更多服務資源 |
可用於生產環境 |
|
Random LoadBalance |
Stable |
隨機,按權重設置隨機機率(推薦使用) |
在一個截面上碰撞的機率高,重試時,可能出現瞬間壓力不均 |
可用於生產環境 |
Alibaba |
RoundRobin LoadBalance |
Stable |
輪詢,按公約後的權重設置輪詢比率 |
存在慢的機器累積請求問題,極端狀況可能產生雪崩 |
可用於生產環境 |
|
LeastActive LoadBalance |
Stable |
最少活躍調用數,相同活躍數的隨機,活躍數指調用先後計數差,使慢的機器收到更少請求 不支持權重,在容量規劃時,不能經過權重把壓力導向一臺機器壓測容量 |
可用於生產環境 |
|
|
條件路由規則 |
Stable |
基於條件表達式的路由規則,功能簡單易用 |
有些複雜多分支條件狀況,規則很難描述 |
可用於生產環境 |
Alibaba |
腳本路由規則 |
Tested |
基於腳本引擎的路由規則,功能強大 |
沒有運行沙箱,腳本能力過於強大,可能成爲後門 |
試用 |
|
Spring Container |
Stable |
自動加載META-INF/spring目錄下的全部Spring配置 |
|
可用於生產環境 |
Alibaba |
Jetty Container |
Stable |
啓動一個內嵌Jetty,用於彙報狀態 |
大量訪問頁面時,會影響服務器的線程和內存 |
可用於生產環境 |
Alibaba |
Log4j Container |
Stable |
自動配置log4j的配置,在多進程啓動時,自動給日誌文件按進程分目錄 |
用戶不能控制log4j的配置,不靈活 |
可用於生產環境 |
Alibaba |