自定义算法
在实际需求中为了测试服务器的性能和能力,或者其他需求需要我们使用自定义算法
必备知识
官方文档明确给出了警告:
这个自定义配置类不能放在@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 {
</

本文介绍了在Spring Cloud中使用Ribbon自定义负载均衡算法的步骤,强调了配置类的位置注意事项,以及如何实现一个满足特定需求的算法。通过测试验证了算法的正确性,实现了每个微服务被访问次数为其数量的两倍。最后提供了参考资料和鼓励读者交流学习。
最低0.47元/天 解锁文章

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



