一、相同點
Dubbo 與 Feign 都依賴註冊中心、負載均衡。
二、區別
1、協議
Dubbo:
支援多傳輸協議(Dubbo、Rmi、http、redis等等),可以根據業務場景選擇最佳的方式。非常靈活。
預設的Dubbo協議:利用Netty,TCP傳輸,單一、非同步、長連線,適合資料量小、高併發和服務提供者遠遠少於消費者的場景。
Feign:
基於Http傳輸協議,短連線,不適合高併發的訪問。
2、負載均衡
支援4種演算法(隨機、輪詢、活躍度、Hash一致性),而且演算法裡面引入權重的概念。
配置的形式不僅支援程式碼配置,還支援Dubbo控制檯靈活動態配置。
負載均衡的演算法可以精準到某個服務介面的某個方法。
只支援N種策略:輪詢、隨機、ResponseTime加權。
負載均衡演算法是Client級別的。
3、容錯策略
支援多種容錯策略:failover、failfast、brodecast、forking等,也引入了retry次數、timeout等配置引數。
利用熔斷機制來實現容錯的,處理的方式不一樣。
一、相同點
Dubbo 與 Feign 都依賴註冊中心、負載均衡。
二、區別
1、協議
Dubbo:
支援多傳輸協議(Dubbo、Rmi、http、redis等等),可以根據業務場景選擇最佳的方式。非常靈活。
預設的Dubbo協議:利用Netty,TCP傳輸,單一、非同步、長連線,適合資料量小、高併發和服務提供者遠遠少於消費者的場景。
Feign:
基於Http傳輸協議,短連線,不適合高併發的訪問。
2、負載均衡
Dubbo:
支援4種演算法(隨機、輪詢、活躍度、Hash一致性),而且演算法裡面引入權重的概念。
配置的形式不僅支援程式碼配置,還支援Dubbo控制檯靈活動態配置。
負載均衡的演算法可以精準到某個服務介面的某個方法。
Feign:
只支援N種策略:輪詢、隨機、ResponseTime加權。
負載均衡演算法是Client級別的。
3、容錯策略
Dubbo:
支援多種容錯策略:failover、failfast、brodecast、forking等,也引入了retry次數、timeout等配置引數。
Feign:
利用熔斷機制來實現容錯的,處理的方式不一樣。