连接到RabbitMQ的Spring Cloud Config客户端

时间:2015-08-05 10:54:34

标签: spring spring-boot spring-cloud

我一直在尝试设置Spring Cloud Config Server / Client。我一直在关注几个不同的例子(12)。我正确设置了客户端和服务器,并且可以成功查询localhost:8888 / localhost:8080以查看JSON格式的值。

我的问题是Spring Boot是否会自动检测Spring Cloud Config Server提供的这些属性。目前我只是尝试在启动时连接到RabbitMQ实例,但尽管没有任何错误但没有成功。它不连接到Rabbit或创建队列/交换。

当我在本地拥有具有以下属性的application.properties文件时,它可以正常工作,但我希望通过GitHub存储库中的Spring Cloud Config进行这些设置。

spring.rabbitmq.host=178.61.47.---
spring.rabbitmq.port=5672
spring.rabbitmq.username=mqtt
spring.rabbitmq.password=mqtt

我已经查看了GitHub上的问题/问题,但无法看到与此相关的任何内容。

客户类的代码如下:

@EnableAutoConfiguration
@ComponentScan
@SpringBootApplication
public class ConfigRabbitApplication {

    final static String queueName = "arduino-weather-queue";

    @Autowired
    RabbitTemplate rabbitTemplate;

    @Bean
    Queue queue() {
        return new Queue(queueName, true);
    }

    @Bean
    Binding binding(Queue queue, TopicExchange exchange) {
        return BindingBuilder.bind(queue).to(exchange).with("arduino-weather");
    }

    @Bean
    TopicExchange exchange() {
        return new TopicExchange("arduino-iot-exchange", true, false);
    }

    public static void main(String[] args) {
        SpringApplication.run(ConfigRabbitApplication.class, args);
    }

}

1 个答案:

答案 0 :(得分:0)

不,Spring启动客户端不知道您要从config-server获取配置。这可能是在类路径中的特定类时加载的,这就是为什么你必须添加org.springframework.cloud:spring-cloud-starter-config依赖项。这里有很好的描述:http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_client_side_usage

如果config-server不在localhost:8888上,您还必须添加:

spring.cloud.config.uri: http://myconfigserver.com

到你的bootstrap.yml文件(与application.yml相同,刚才加载)。