Ribbon负载均衡策略

Ribbon负载均衡策略

Ribbon的负载均衡策略是由 IRule 接口定义, 该接口由如下实现:
在jar包:com.netflix.ribbon#ribbon-loadbalancer中;

在这里插入图片描述

要使用ribbon实现负载均衡,在Spring 的配置类里面把对应的负载均衡接口实现类作为一个Bean配置一下就行了,即像下面这样:

/**
     * 更改负载均衡策略,默认是ZoneAvoidanceRule策略
     *
     * @return
     */
    @Bean
    public IRule iRule(){
        return new NacosRule();
    }

负载均衡的入口:ILoadBalancer接口;

@Bean
public IRule iRule(){
    return new RoundRobinRule();
}
负载均衡实现策略
RandomRule随机
RoundRobinRule轮询
AvailabilityFilteringRule先过滤掉由于多次访问故障的服务,以及并发连接数超过阈值的服务,然后对剩下的服务按照轮询策略进行访问
WeightedResponseTimeRule根据平均响应时间计算所有服务的权重,响 应时间越快服务权重就越大被选中的概率即 越高,如果服务刚启动时统计信息不足,则 使用RoundRobinRule策略,待统计信息足够会切换到该WeightedResponseTimeRule策略
RetryRule先按照RoundRobinRule策略分发,如果分发到的服务不能访问,则在指定时间内进行重试,然后分发其他可用的服务
BestAvailableRule先过滤掉由于多次访问故障的服务,然后选择一个并发量最小的服务
ZoneAvoidanceRule (默认)综合判断服务节点所在区域的性能和服务节点的可用性,来决定选择哪个服务

如果我们没有指定负载均衡策略,ribbon默认的负载均衡是ZoneAvoidanceRule,自定义负载均衡策略:

public class MyNacosRule extends AbstractLoadBalancerRule {
    @Override
    public void initWithNiwsConfig(IClientConfig clientConfig)    
{//基本上不需要实现}

    @Override
    public Server choose(Object key) {//实现该方法}
}

配置文件配置负载均衡策略:(可以直接配置配置文件实现负载均衡)

远程服务名称.ribbon.NFLoadBalancerRuleClassName=com.bjpowernode.ribbon.MyNacosRule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值