Dubbo vs Feign
好的,咱们用快递和打电话的比喻,把这事儿说得明明白白!
🚚 一、Dubbo vs Feign:内部专线快递 vs 普通快递
想象一下,你们公司内部部门之间要传递重要文件(服务调用),有两种方式可选:
- Dubbo (内部专线快递)
- 协议:就像公司自己建的专用物流通道(自定义二进制协议),卡车只拉货不拉包装盒,速度快、运量大。
- 性能:专车直达、长连接复用,1秒送10箱文件(高吞吐、低延迟)。
- 服务治理:自带GPS跟踪(服务发现)、智能分货(负载均衡)、故障自动切换(熔断容错),管送还管售后。
- 适合场景:财务部天天给仓库发库存清单(高频内部调用)、银行转账系统(高性能要求)。
- Feign (普通快递)
- 协议:走公共公路(HTTP协议),每箱文件都套个大纸箱(JSON/XML头部冗余),速度慢点但谁都能送。
- 开发体验:像叫闪送——手机下单就行(声明式接口),写个
@FeignClient
就完事。 - 集成能力:和公司门卫(Spring Cloud网关)、打卡机(Eureka注册中心)关系贼好,一套流程丝滑。
- 适合场景:市场部给客户寄样品(对外提供REST API)、新项目赶时间上线(快速原型开发)。
✅ 一句话选型:
内部天天跑批量的货(高性能服务调用)→ Dubbo;
对外寄小包裹或临时调货(HTTP API/快速开发)→ Feign
答:相同点:都可以进行服务之间的相互调用。
不同点:dubbo是基于二进制协议的,性能比feign高,适合高频内部调用的场景,高吞吐,低延迟。自带服务治理(包括服务发现,负载均衡,熔断容错)
feign则是基于http协议的,适合外部调用,需要对外提供rest api的。通常结合springcloud