spring cloud整合Ribbon
使用Eureka中自带的Ribbon
如果你使用的是Eureka做服务发现和注册的话,在比较新版本的Eureka中,Eureka已经集成了Ribbon进入Eureka中,当你引入
dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-clientr</artifactId>
</dependency>
使用十分简单,只需要在服务消费端的RestTemplate的配置类上添加@LoadBalanced即可。
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
使用独立的Ribbon
配置轮询规则
自定义一个RibbonConfiguration配置类。在配置类中创建IRule规则,指定轮询算法,这里使用Ribbon自带的随机轮询
@Configuration
public class RibbonConfiguration {
@Autowired
private IClientConfig config;
@Bean
public IRule ribbonRule(IClientConfig config) { // 自定义为随机规则
return new RandomRule();
}
}
主启动类
在spring的主启动类上添加@RibbonClient注解,来使用Ribbon
@SpringBootApplication
@RibbonClient(name = "consumer-payment",configuration = RibbonConfiguration.class)
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class,args);
}
}