参考:http://www.idouba.net/netflix-source-ribbon-rule/?utm_source=tuicool&utm_medium=referral
Spring Cloud还可以通过使用@RibbonClient声明其他配置(在RibbonClientConfiguration之上)来完全控制客户端。 例:
/**
* 自定义Ribbon的负载均衡
*
*/
@Configuration
public class RibbonConfig {
@Autowired
IClientConfig config;
@Bean
@ConditionalOnMissingBean
public IRule ribbonRule(IClientConfig config) {
System.out.println("随机的。。。。");
return new RandomRule();
}
}
@SpringBootApplication
@EnableEurekaClient
@RibbonClient(name = "springcloud-userservcie", configuration = RibbonConfig.class)
public class SpringCloudUserClientApplication {
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(SpringCloudUserClientApplication.class, args);
}
}
@RibbonClient(name = "springcloud-userservcie", configuration = RibbonConfig.class)
注意:RibbonConfig,应该在主启动类之外定义,避免被扫描到,例如:
@RibbonClient,对name为(springcloud-userservcie)的服务端做RibbonConfig.java类中自定义的负载均衡策略。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。