Ribbon负载均衡

本文介绍了Nacos中Ribbon的默认负载均衡策略,如RandomRule、RoundRobinRule等,并展示了如何在代码和配置文件中修改默认策略,以及自定义负载均衡策略如CustomRule的示例。还提到了配置文件中的饥饿加载选项。
摘要由CSDN通过智能技术生成

Ribbon是客户端的负载均衡,在服务消费方调用。

nacos中默认使用了Ribbon。

不能在启动类的同级或子级下配置。

负载均衡策略:

RandomRule:随机选择一个服务实例;

RoundRobinRule:轮询负载均衡策略;

RetryRule:在轮询的基础上进行重试;

WeightedResponseTimeRule:权重,nacos还扩展了一个自己的基于配置的权重扩展;

ClientConfigEnableRoundRobinRule:内部定义了RoundRobinRule,choose方法还是采用了RoundRobinRule的choose方法,所以它的选择策略和RoundRobinRule一致。

BestAvailableRule:过滤掉失效的服务实例,顺便找出并发请求最小的服务实例;

ZoneAvoidanceRule:默认规则,区域就近原则,然后采用轮询方式;

修改默认负载均衡:

代码中实现负载均衡

@Configuration
public class RibbonRandomRuleConfig {

    @Bean
    public IRule iRule() {
        return new RandomRule();
    }
}

或配置文件中实现负载均衡

启动类上增加注解,写明服务提供方。

自定义负载均衡策略:

public class CustomRule extends AbstractLoadBalancerRule {


    @Override
    public Server choose(Object o) {
        ILoadBalancer loadBalancer = this.getLoadBalancer();
        //  获得当前请求的服务实例
        List<Server> reachableServers = loadBalancer.getReachableServers();
        int random = ThreadLocalRandom.current().nextInt(reachableServers.size());
        Server server = reachableServers.get(random);
//        if (server.isAlive())   {
//            return null;
//        }
        return server;
    }

    @Override
    public void initWithNiwsConfig(IClientConfig iClientConfig) {

    }
}

配置文件中增加配置,开启饥饿加载:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值