Dubbo调度机制解析(cluster扩展或者路由扩展)

1.      更详细的duboo的集群路由和负载均衡机制分析

首先进入XXClusterInvoker类:

invoke(final Invocation invocation)-> Directory.list(invocation)

进入XXDirectory(RegistryDirectory)类:

list(invocation)->doList(Invocation invocation)-> router.route(invokers,getConsumerUrl(), invocation);

进入XXRouter类:

route(List<Invoker<T>> invokers, URL url,Invocation invocation)

返回XXClusterInvoker类:

->doInvoke(Invocation invocation, final List<Invoker<T>>invokers, LoadBalance loadbalance)-> select(LoadBalance loadbalance,Invocation invocation, List<Invoker<T>> invokers,List<Invoker<T>> selected)-> doselect(LoadBalance loadbalance,Invocation invocation, List<Invoker<T>> invokers,List<Invoker<T>>)-> loadbalance.select(invokers, getUrl(),invocation);

进入XX loadbalance类:

-> doSelect(List<Invoker<T>> arg0, URL arg1,Invocation arg2)

 

---整个cluster的调度流程总体如上述

 

2.在这个流程中我们可以对三到四个层面进行扩展重写

         (1)Cluster和ClusterInvoker

         (2)Directory

         (3)Router

         (4)loadbalance

--其中(1)和(4)已经实践过没问题,(2)和(3)的扩展没试过,尤其是router的扩展貌似不能直接在XML配置文件上使用,而是要手工写到注册中心。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值