spring cloud整合Ribbon

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);
    }
}
posted @ 2021-07-22 17:42  鸭梨的药丸哥  阅读(13)  评论(0)    收藏  举报  来源