Dubbo成熟度

成熟度

功能成熟度

Feature Maturity Strength Problem Advise User
併發控制 Tested 併發控制 試用
鏈接控制 Tested 鏈接數控制 試用
直連提供者 Tested 點對點直連服務提供方,用於測試 測試環境使用 Alibaba
分組聚合 Tested 分組聚合返回值,用於菜單聚合等服務 特殊場景使用 可用於生產環境
參數驗證 Tested 參數驗證,JSR303驗證框架集成 對性能有影響 試用 LaiWang
結果緩存 Tested 結果緩存,用於加速請求 試用
泛化引用 Stable 泛化調用,無需業務接口類進行遠程調用,用於測試平臺,開放網關橋接等 可用於生產環境 Alibaba
回聲測試 Tested 回聲測試 試用
隱式傳參 Stable 附加參數 可用於生產環境
異步調用 Tested 不可靠異步調用 試用
本地調用 Tested 本地調用 試用
參數回調 Tested 參數回調 特殊場景使用 試用 Registry
事件通知 Tested 事件通知,在遠程調用執行先後觸發 試用
本地存根 Stable 在客戶端執行部分邏輯 可用於生產環境 Alibaba
本地假裝 Stable 僞造返回結果,可在失敗時執行,或直接執行,用於服務降級 需註冊中心支持 可用於生產環境 Alibaba
延遲暴露 Stable 延遲暴露服務,用於等待應用加載warmup數據,或等待spring加載完成 可用於生產環境 Alibaba
延遲鏈接 Tested 延遲創建鏈接,調用時創建 試用 Registry
粘滯鏈接 Tested 粘滯鏈接,老是向同一個提供方發起請求,除非此提供方掛掉,再切換到另外一臺 試用 Registry
令牌驗證 Tested 令牌驗證,用於服務受權 需註冊中心支持 試用
路由規則 Tested 動態決定調用關係 需註冊中心支持 試用
配置規則 Tested 動態下發配置,實現功能的開關 需註冊中心支持 試用
訪問日誌 Tested 訪問日誌,用於記錄調用信息 本地存儲,影響性能,受磁盤大小限制 試用
分佈式事務 Research JTA/XA三階段提交事務 不穩定 不可用

策略成熟度

Feature Maturity Strength Problem Advise User
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
相關文章
相關標籤/搜索