1、为何要自定义Ribbon负载均衡策略
Ribbon默认的负载均衡策略是轮询策略。如果不满足我们的续期,则需要定制自己的均衡策略。
2、自定义BalanceConfig
package com.zemel.common;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.netflix.loadbalancer.IRule;
// 该类无法被主main扫描到
public class MyLoadBalanceConfig {
@Bean
public IRule ribbonRule(){
return new com.netflix.loadbalancer.RandomRule();
}
}
若发现无效,该类不放于主Main类同一目录或者子目录中;
框架提供的策略类在包com.netflix.loadbalancer中
3、Main配置
package com.zemel.consumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.ribbon.RibbonClient;
import com.zemel.common.MyLoadBalanceConfig;
/**
* Hello world!
*
*/
@SpringBootApplication
@EnableEurekaClient
@RibbonClient(name="ribbonClient", configuration=MyLoadBalanceConfig.class)
public class Consumer80App {
public static void main(String[] args) {
SpringApplication.run(Consumer80App.class, args);
}
}