后端岗位面试题更新 2026-08-05

请对比 Feign 与 Dubbo 在服务调用方式上的不同,并说明各自适用的微服务架构场景。

后端开发技术原理技术选型方案权衡Apache DubboFeignSpring Cloud

考察说明

考查候选人对微服务远程调用框架的掌握,能否清晰区分 HTTP 与 RPC 两类调用方式的本质差异。

回答思路

  1. 【回答框架 1】Feign 是基于 HTTP 协议的声明式 REST 客户端,通过接口加注解定义远程调用,底层默认使用 Ribbon 做负载均衡,适合 Spring Cloud 生态。Dubbo 是高性能 RPC 框架,基于 TCP 长连接,支持多种序列化协议,适合内部高并发服务间调用。
  2. 【回答框架 2】通信协议上,Feign 走 HTTP,使用 JSON 等文本格式,易于跨语言和穿透防火墙;Dubbo 走自定义 TCP 协议,二进制传输,单次调用开销更低。服务治理上,Feign 通过注册中心实现服务发现,负载均衡在客户端完成;Dubbo 支持完整的服务治理,包括集群容错、服务降级、路由、分组等。
  3. 【回答框架 3】集成度上,Feign 与 Spring Cloud 深度整合,开发简单,适合 RESTful API 场景;Dubbo 对微服务治理更全面,但引入了较多配置和依赖,适合对性能有要求的内部调用。选型时关注调用性能、协议兼容性、生态和团队熟悉度。
  4. 【关键点 1】Feign 基于 HTTP 协议,Dubbo 基于 TCP 长连接,通信开销不同。
  5. 【关键点 2】Feign 适合 RESTful 开放生态,Dubbo 适合高并发内部服务调用。
  6. 【关键点 3】Dubbo 提供更丰富的服务治理能力,如集群容错和负载均衡策略。
  7. 【易错点 1】混淆两者都能做负载均衡,但实现机制和粒度不同。
  8. 【易错点 2】误以为 Feign 不支持异步,实际可配置,但默认同步。
  9. 【易错点 3】忽略序列化方式差异,Feign 默认 JSON,Dubbo 默认 Hessian2 等。