1. 调用dubbo接口

2. 反射获取方法名称、参数等,并判断是否是Object自带的方法(toString(), hashCode(), equals(String name)), 不是则调用RPC框架获取接口内容
![]()

3. 继续调用跟进

4. 获取服务提供者信息(多个接口会有多个Invoker对象,会进行负载均衡)

5. 负载均衡,有下图所示四种负载均衡策略


四种负载均衡策略


默认RandomLoadBalance,查看各个provider的权重,权重一致随机分配,否则按照权重依次分配

6. 获取接口内容


总结:
1. 通过注入的代理对象,反射获取调用的方法名及方法参数。判定方法是否是dubbo是定义的接口(排除toString(), hashCode(), equals(String name));
2. 通过RPC框架进行调用,从注册中心获取对应的Provider;
3. 当有多个Provider的时候,进行负载均衡(四种或以上均衡);
4. 调用获取结果。
以上为个人学习记录,如有错误,还望指正,加油。
本文详细介绍了Dubbo框架中远程过程调用(RPC)的实现机制,包括调用接口、反射方法、负载均衡策略及服务提供者信息获取等内容。深入理解Dubbo的RPC调用流程对于开发者掌握其工作原理至关重要。
405

被折叠的 条评论
为什么被折叠?



