Ribbon负载策略有以下几种:

默认是使用轮询策略.

 

在springboot项目中,使用ribbon+RestTemplate可以很方便的实现的实现轮询负载策略

 

配置代码如下:

@Configuration
public class ApplicationContextConfig {
    @Bean
    @LoadBalanced  // 提供负载均衡的能力
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }
}

 

    @Autowired
    private RestTemplate restTemplate;

 

但是如果是使用其它负载策略.需得如下配置

1. 首先在 @ComponentScan 注解管理的包范围之外创建一个配置类,然后在配置类中指明Rabbion的负载策略

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 自定义Ribbon的轮询规则,这儿使用随机
 */
@Configuration
public class MyOrderRule {

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

 

2. 在项目启动类上添加@RibbonClient注解 

@EnableEurekaClient
@SpringBootApplication
// 表示调用CLOUD-PAYMENT-SERVICE服务用的MyOrderRule轮询规则 @RibbonClient(name
= "CLOUD-PAYMENT-SERVICE", configuration = MyOrderRule.class) public class OrderApp { public static void main(String[] args) { SpringApplication.run(OrderApp.class, args); } }

 

3. 其它照旧

 

posted on 2020-04-12 23:02  显示账号  阅读(336)  评论(0编辑  收藏  举报