Spring Cloud功能区:负载均衡器规则配置不起作用

时间:2016-07-30 03:43:32

标签: spring-cloud spring-cloud-netflix

这是我的application.properties

spring.application.name=person

server.port=8080
eureka.client.service-url.defaultZone=http://localhost:8761/eureka

# this line of config doesn't work    
person.ribbon.NFLoadBalancerRuleClassName=asdfasdfasdf

通过将person.ribbon.NFLoadBalancerRuleClassName设置为asdfasdfasdf,控制台输出中应该显示一些错误,但是没有,这意味着此配置不起作用。我不知道发生了什么。

以下是依赖项:

<dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>



        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-ribbon</artifactId>
        </dependency>

    </dependencies>

spring-cloud的版本是Brixton.SR3

1 个答案:

答案 0 :(得分:1)

我使用以下配置类成功配置了Ribbon:

@Configuration
@RibbonClient(name = "person", configuration = RibbonConfiguration.RibbonConfig.class)
public class RibbonConfiguration {
    static class RibbonConfig {
        @Bean
        public IRule rule() {
            return new WeightedResponseTimeRule();
        }
    }
}