资讯配图
核心总结

《Dubbo 面试题 47 道》的核心内容提炼,按模块分类梳理,便于快速掌握要点:


一、基础概念

  1. Dubbo 定位:高性能、轻量级开源 RPC 框架,支持服务注册/发现、负载均衡、容错,与 Spring 无缝集成。

  2. 使用场景:透明化远程调用、软负载均衡、服务动态注册与发现。

  3. 核心功能:Remoting(网络通信)、Cluster(集群容错)、Registry(注册中心)。


二、架构与组件

  1. 核心角色

  • Provider(服务提供方)、Consumer(消费方)、Registry(注册中心)、Monitor(监控中心)、Container(运行容器)。

  • 注册流程

    • Provider 注册服务 → Consumer 订阅服务 → Registry 推送地址变更 → Consumer 负载均衡调用。

  • 分层架构

    • 接口层(Service)→ 配置层(Config)→ 代理层(Proxy)→ 注册层(Registry)→ 路由层(Cluster)→ 监控层(Monitor)→ 协议层(Protocol)→ 传输层(Transport)→ 序列化层(Serialize)。


    三、注册中心与集群

    1. 注册中心类型:Zookeeper(推荐)、Redis、Multicast、Simple。

    2. 容错机制

    • 注册中心宕机后,Consumer 仍可通过本地缓存通信。

  • 负载均衡策略:Random(默认)、RoundRobin、LeastActive、ConsistentHash。

  • 集群容错方案

    • Failover(默认重试)、Failfast(快速失败)、Failsafe(失败忽略)、Failback(定时重试)、Forking(并行调用)、Broadcast(广播通知)。


    四、协议与通信

    1. 默认通信框架:Netty(NIO)。

    2. 支持的协议

    • Dubbo协议:TCP + Hessian 序列化,适合高并发小数据。

    • RMI:Java 标准序列化,短连接。

    • HTTP/REST:跨语言,灵活但带宽开销大。

    • Hessian:二进制传输,支持大参数。

  • 序列化方式:Hessian(默认)、FastJson、Protobuf、Java 原生。


  • 五、配置与运维

    1. 核心配置

    • <dubbo:service>(暴露服务)、<dubbo:reference>(引用服务)、<dubbo:protocol>(协议)、<dubbo:registry>(注册中心)。

  • 超时设置

    • Provider 或 Consumer 配置,Consumer 优先级更高。

    • 默认失败重试 2 次。

  • 优雅停机:通过 JDK 的 ShutdownHook 实现(需用 kill PID,而非 kill -9)。

  • 服务降级

    • 通过 mock="return null" 或自定义 Mock 类实现。


    六、高级特性

    1. SPI 扩展

    • 支持动态扩展实现类(如 Protocol、Filter),通过 ExtensionLoader 加载。

  • 设计模式

    • 工厂模式(SPI 扩展)、装饰器模式(Filter 链)、观察者模式(注册中心监听)、动态代理(Stub/Skeleton)。

  • 监控实现

    • MonitorFilter 收集数据 → DubboMonitor 聚合 → 定时写入文件并生成图表。

  • 安全机制

    • Token 令牌防直连、黑白名单控制调用权限。


    七、与其他框架对比

    1. Dubbo vs Spring Cloud

    • Dubbo:专注 RPC 调用,TCP 协议,高性能。

    • Spring Cloud:微服务生态(HTTP + REST),灵活但带宽开销大。

  • Dubbox:当当网扩展的 Dubbo,支持 RESTful 调用。


  • 八、RPC 原理

    1. RPC 定义:远程过程调用,封装网络通信、序列化、服务发现等细节。

    2. 核心步骤

    • 建立连接(TCP/NIO)→ 寻址(注册中心)→ 序列化/反序列化 → 本地调用 → 返回结果。

  • 关键技术

    • 动态代理(Stub/Skeleton)、NIO(Netty)、高效序列化(Protobuf)、注册中心(Zookeeper)。


    九、常见问题

    1. 服务找不到:检查 @Service 注解、注册中心配置。

    2. 直连服务:通过配置或 telnet 命令绕过注册中心。

    3. 分布式事务:需集成 TCC-Transaction 框架。


    十、一句话总结

    Dubbo 是一个专注于高性能 RPC 调用的分布式服务治理框架,核心解决服务注册、发现、通信、容错等问题,适用于高并发、低延迟场景。

    资讯配图
    资讯配图
    资讯配图

    本书免费下载地址


        关注微信公众号“人工智能产业链union”回复关键字“AI面试25”获取下载地址。

    往期推荐:
    【AI加油站】AI面试专题一:BIO,NIO,AIO,Netty面试题(附下载)
    【AI加油站】AI面试专题二:Git常用命令面试题(附下载)
    【AI加油站】AI面试专题三:Java常用面试题(附下载)
    【AI加油站】AI面试专题四:Linux系统的面试题集(附下载)
    【AI加油站】AI面试专题五:Memcached面试题集(附下载)
    【AI加油站】AI面试专题六:MyBatis框架的面试题(附下载)
    【AI加油站】AI面试专题七:MySQL相关的面试题资料(附下载)
    【AI加油站】AI面试专题八:Netty面试题资料(附下载)
    【AI加油站】AI面试专题九:Nginx的面试题资料(附下载)
    【AI加油站】AI面试专题十:RabbitMQ的面试题资料(附下载)
    【AI加油站】AI面试专题十一:Redis的面试题资料(附PDF下载)
    【AI加油站】AI面试专题十二:Spring的面试题资料(附PDF下载)
    【AI加油站】AI面试专题十三:Apache Tomcat的面试题资料(附PDF下载)
    【AI加油站】AI面试专题十四:Zookeeper的面试题资料(附PDF下载)
    【AI加油站】AI面试专题十五:《阿里巴巴Java开发手册》终极版的面试题资料(附PDF下载)
    【AI加油站】AI面试专题十六:大数据技术面试题资料(附PDF下载)
    【AI加油站】AI面试专题十七:Java并发多线程面试题资料(附PDF下载)
    【AI加油站】AI面试专题十八:设计模式的面试题资料(附PDF下载)
    【AI加油站】AI面试专题十九:Java虚拟机(JVM)的面试题资料(附PDF下载)
    【AI加油站】AI面试专题二十:Elasticsearch的面试题资料(附PDF下载)
    【AI加油站】AI面试专题二十一:TCP UDP Socket Http网络编程的面试题资料(附PDF下载)
    【AI加油站】AI面试专题二十二:消息队列Kafka的面试题资料(附PDF下载)