Dubbo接口调用源码解析

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. 调用获取结果。

 

以上为个人学习记录,如有错误,还望指正,加油。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值