Ribbon负载均衡

一、Ribbon负载均衡策略

在这里插入图片描述

  • RandomRule:随机策略
  • RoundRobinRule:轮询策略
  • RetryRule:重试策略,在轮询的基础上进行重试;即先使用轮询来访问,如果选到的实例正常响应就返回,如果选择的服务为null或已经失效,则在失效时间deadline之前不断以轮询的方式进行重试,如果超时了,就返回null
  • WeightedResponseTimeRule:权重策略,ribbon默认的权重策略是根据服务响应时间来的,如果响应时间越短,则权重越大;如果要结合nacos使用,手动设置权重的话,需要指定是NacosRule
  • BestAvailableRule:过滤失效的服务实例,然后找出请求量最小的服务来使用
  • ZoneAvoidanceRule:默认规则,复合判断server所在区域(云原生概念,即服务器所在的位置,北京或成都,一般是就近原则)的性能和server的可用性选择服务器,会根据判断条件对服务进行过程,过滤完成后,走线性轮询的机制

二、Ribbon负载策略配置

2.1 全局配置

//定义配置类
@Configuration
public class RibbonConfig {
    /*
    * ribbon 全局配置负载策略
    * */
    @Bean
    public IRule iRule() {
        return new RandomRule();
    }

}

2.2 局部配置方式一

/*
* 	1:在启动类上加上@RibbonClients注解
* 	2:name 指定服务
* 	3:configuration 指定负载策略
* */
@SpringBootApplication
@Slf4j
@RibbonClients(value = {
   	@RibbonClient(name = "stock-service",configuration = RibbonConfig.class)
})
public class OrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class,args);
        log.info("order客户端启动...");
    }
}

2.3 局部配置方式二 yml配置文件方式

#服务提供者的ribbon负载策略
stock-service:
    ribbon:
        NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

product-service:
    ribbon:
        NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

三、RibbonConfig类要放在@ComponentScan扫描不到的地方,如果放在了能扫描到的地方,那就是全局配置

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值