自定义算法
在实际需求中为了测试服务器的性能和能力,或者其他需求需要我们使用自定义算法
必备知识
官方文档明确给出了警告:
这个自定义配置类不能放在@ComponentScan所扫描的当前包下以及子包下,
否则我们自定义的这个配置类就会被所有的Ribbon客户端所共享,也就是说
我们达不到特殊化定制的目的了。
@ComponentScan是在@SpringBootApplication的注解里面
自己写的算法不能放在@SpringBootApplication的当前包和子包下
使用自定义算法
1.在主启动类加入@RibbonClient(name = “democloud-dept”,configuration = MySelfRule.class)
代表使用自定义的java文件
2.在其他的包下建立算法类,需要符合IRule类的规则
extends AbstractLoadBalancerRule
我想了一个需求,在所有的微服务机器上每个微服务访问的次数是总微服务的个数*2,且边路所有的微服务
package com.yan.demo.myrule;
import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.AbstractLoadBalancerRule;
import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.Server;
import java.util.List;
/**
* @Author: 闫明辉
* @Description:
* @Date: Create in 21:46 2020/3/5
*/
public class RandomRule_ymh extends AbstractLoadBalancerRule {
</