【AI加油站】AI面试专题二十五:Dubbo的面试题资料(附PDF下载)
- 2025-07-27 12:00:00

《Dubbo 面试题 47 道》的核心内容提炼,按模块分类梳理,便于快速掌握要点:
一、基础概念
Dubbo 定位:高性能、轻量级开源 RPC 框架,支持服务注册/发现、负载均衡、容错,与 Spring 无缝集成。
使用场景:透明化远程调用、软负载均衡、服务动态注册与发现。
核心功能:Remoting(网络通信)、Cluster(集群容错)、Registry(注册中心)。
二、架构与组件
核心角色:
Provider(服务提供方)、Consumer(消费方)、Registry(注册中心)、Monitor(监控中心)、Container(运行容器)。
注册流程:
Provider 注册服务 → Consumer 订阅服务 → Registry 推送地址变更 → Consumer 负载均衡调用。
分层架构:
接口层(Service)→ 配置层(Config)→ 代理层(Proxy)→ 注册层(Registry)→ 路由层(Cluster)→ 监控层(Monitor)→ 协议层(Protocol)→ 传输层(Transport)→ 序列化层(Serialize)。
三、注册中心与集群
注册中心类型:Zookeeper(推荐)、Redis、Multicast、Simple。
容错机制:
注册中心宕机后,Consumer 仍可通过本地缓存通信。
负载均衡策略:Random(默认)、RoundRobin、LeastActive、ConsistentHash。
集群容错方案:
Failover(默认重试)、Failfast(快速失败)、Failsafe(失败忽略)、Failback(定时重试)、Forking(并行调用)、Broadcast(广播通知)。
四、协议与通信
默认通信框架:Netty(NIO)。
支持的协议:
Dubbo协议:TCP + Hessian 序列化,适合高并发小数据。
RMI:Java 标准序列化,短连接。
HTTP/REST:跨语言,灵活但带宽开销大。
Hessian:二进制传输,支持大参数。
序列化方式:Hessian(默认)、FastJson、Protobuf、Java 原生。
五、配置与运维
核心配置:
<dubbo:service>
(暴露服务)、<dubbo:reference>
(引用服务)、<dubbo:protocol>
(协议)、<dubbo:registry>
(注册中心)。
超时设置:
Provider 或 Consumer 配置,Consumer 优先级更高。
默认失败重试 2 次。
优雅停机:通过 JDK 的 ShutdownHook
实现(需用 kill PID
,而非 kill -9
)。
服务降级:
通过
mock="return null"
或自定义 Mock 类实现。
六、高级特性
SPI 扩展:
支持动态扩展实现类(如 Protocol、Filter),通过
ExtensionLoader
加载。
设计模式:
工厂模式(SPI 扩展)、装饰器模式(Filter 链)、观察者模式(注册中心监听)、动态代理(Stub/Skeleton)。
监控实现:
MonitorFilter 收集数据 → DubboMonitor 聚合 → 定时写入文件并生成图表。
安全机制:
Token 令牌防直连、黑白名单控制调用权限。
七、与其他框架对比
Dubbo vs Spring Cloud:
Dubbo:专注 RPC 调用,TCP 协议,高性能。
Spring Cloud:微服务生态(HTTP + REST),灵活但带宽开销大。
Dubbox:当当网扩展的 Dubbo,支持 RESTful 调用。
八、RPC 原理
RPC 定义:远程过程调用,封装网络通信、序列化、服务发现等细节。
核心步骤:
建立连接(TCP/NIO)→ 寻址(注册中心)→ 序列化/反序列化 → 本地调用 → 返回结果。
关键技术:
动态代理(Stub/Skeleton)、NIO(Netty)、高效序列化(Protobuf)、注册中心(Zookeeper)。
九、常见问题
服务找不到:检查
@Service
注解、注册中心配置。直连服务:通过配置或
telnet
命令绕过注册中心。分布式事务:需集成 TCC-Transaction 框架。
十、一句话总结
Dubbo 是一个专注于高性能 RPC 调用的分布式服务治理框架,核心解决服务注册、发现、通信、容错等问题,适用于高并发、低延迟场景。



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

- 点赞 (0)
-
分享
微信扫一扫
-
加入群聊
扫码加入群聊