Java面试题更新 2026-08-05

请对比 Dubbo 与 Spring Cloud Gateway 在定位、通信机制、负载均衡、服务治理和适用场景上的主要差异。

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

考察说明

考查对微服务生态中不同组件职责边界的理解,以及能否区分 RPC 框架与 API 网关的适用场景。

回答思路

  1. 【回答框架 1】Dubbo 是高性能 Java RPC 服务框架,核心解决服务间点对点调用,支持多种协议(如 Dubbo 协议、Hessian、gRPC),默认使用 Netty 进行 TCP 长连接,适合内部服务间低延迟、高吞吐的同步调用。
  2. 【回答框架 2】Spring Cloud Gateway 是基于 Spring WebFlux 的 API 网关,核心是路由转发、过滤、限流、鉴权,面向外部请求入口,使用非阻塞模型,适合将外部 HTTP 请求路由到内部服务,并做统一横切关注点处理。
  3. 【回答框架 3】负载均衡上,Dubbo 内置多种负载均衡策略(如随机、轮询、一致性哈希),在服务消费者端做客户端负载均衡;Gateway 则通过集成 Spring Cloud LoadBalancer 或 Ribbon 实现,在网关层做负载均衡。
  4. 【回答框架 4】服务治理方面,Dubbo 提供注册中心(如 ZooKeeper、Nacos)、服务发现、集群容错、服务降级等完整 RPC 治理能力;Gateway 侧重路由规则、过滤器链、限流熔断(集成 Sentinel 或 Resilience4J),不直接管理服务注册与发现。
  5. 【回答框架 5】适用场景上,Dubbo 适合内部微服务间高性能 RPC 调用,尤其对延迟敏感;Gateway 适合作为系统统一入口,处理外部流量、协议转换、安全认证和聚合调用。两者可共存,Gateway 作为前端入口,Dubbo 作为内部服务间通信框架。
  6. 【关键点 1】Dubbo 是 RPC 服务框架,Gateway 是 API 网关,职责不同。
  7. 【关键点 2】Dubbo 默认 TCP 长连接,Gateway 基于 WebFlux 非阻塞 HTTP。
  8. 【关键点 3】Dubbo 客户端负载均衡,Gateway 网关层负载均衡。
  9. 【关键点 4】Dubbo 提供服务注册发现与集群容错,Gateway 提供路由与过滤。
  10. 【关键点 5】两者可组合使用,Gateway 对外,Dubbo 对内。
  11. 【易错点 1】不要将 Dubbo 与 Spring Cloud Gateway 视为同类替代品,它们解决不同层次问题。
  12. 【易错点 2】不要忽略 Dubbo 的协议多样性,其性能优势依赖特定协议与序列化。
  13. 【易错点 3】不要认为 Gateway 能替代服务注册中心,它本身不提供服务发现能力。