首页 > 解决方案 > 从 config-server 获取 application.properties 时出现 Redis 连接失败错误

问题描述

我有一个在 localhost:6379 中运行的 Redis 服务,并且 spring-boot 微服务通过从 application.properties 文件中读取主机名和端口来连接到这个 redis 服务。

@Configuration
public class RedisConfiguration {

    /**
    * redis host.
    */
    @Value("${spring.redis.host}")
    private String redisHost;

    /**
     * redis port.
     */
    @Value("${spring.redis.port}")
    private int redisPort;


    @Bean
    JedisConnectionFactory jedisConnectionFactory() {
        RedisStandaloneConfiguration redisConf = new RedisStandaloneConfiguration(redisHost, redisPort);
    return new JedisConnectionFactory(redisConf);
}

在 application.properties 文件中,给出的属性是 -

spring.redis.host=localhost 
spring.redis.port=6379

当我在默认配置文件中运行微服务时,这非常有效,它使用文件夹中的默认application.properties/src/main/resources

现在我面临的挑战是,当我在测试配置文件中运行微服务时,它必须从 config-server 获取属性文件,该文件从 github repo 克隆它。

在这种情况下,redis 服务显示如下错误

[错误][2019-05-30 15:48:33,761][pool-1-thread-4|org.springframework.data.redis.listener.RedisMessageListenerContainer:handleSubscriptionException:651] 发生连接失败。5000毫秒后重启订阅任务

仅当我从配置服务获取属性文件时才会发生此错误。

github repo 中的 application-test.properties 也具有正确的 redis 配置。

请帮我解决这个问题。

标签: gitspring-bootredisspring-cloud-configapplication.properties

解决方案


最后,经过大量调试,我发现出了什么问题。这是由于最后不需要的空间spring.redis.host=localhost导致了这个问题。


推荐阅读