LeastActive负载均衡称为最少活跃调用数负载均衡,即框架会记下每一个invoker的活跃数,每次只从活跃数最少的invoker里选择一个节点
...
for(int i = 0;i<length;i++){
...
//获得invoker的活跃数、预热权重
if(leastActive == -1 || active < leastAcive){
//发现有更小的活跃数,这里置空之前的计数
...
}else if(active == leastActive){
//存在n个invoker都是最小活跃数的情况下,全部保存到集合中,根据权重选择一个节点
}
}
...//如果只有一个invoker则直接返回
...//如果权重不一样,则使用和Random负载均衡一样的权重算法找到一个invoker并返回
...//如果权重相同,直接随机选一个返回