Dubbo 的 RPC 调用过程?
Dubbo 面试题发布于
一、代理层
Consumer 调用接口方法,实际调用的是代理对象(JDK 动态代理或 Javassist)。
二、路由层
- Cluster:集群容错,处理调用失败。
- Directory:管理 Provider 列表。
- Router:根据路由规则过滤 Provider。
- LoadBalance:从 Provider 中选一个。
三、协议层
- Filter 链:监控、限流、日志等。
- Protocol:把调用转为特定协议(dubbo/rest 等)。
四、传输层
- Client/Server:基于 Netty 通信。
- Codec:序列化/反序列化(Hessian2、JSON、Protobuf 等)。
五、服务端
- Handler 接收请求。
- 反射调用目标方法。
- 返回结果。
六、全链路
Consumer 代理 → Cluster → Directory/Router/LoadBalance → Filter → Protocol → Transport → Provider Filter → Invoker → 实现类。