我有一个Redis服务在localhost:6379中运行,并且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
当我在默认配置文件中运行微服务时,此功能完美起作用,因为它使用/src/main/resources
文件夹中的默认application.properties。
现在我面临的挑战是,当我在测试配置文件中运行微服务时,它必须从配置服务器中获取属性文件,该配置文件将从github存储库中克隆出来。
在这种情况下,redis服务显示了这样的错误
[错误] [2019-05-30 15:48:33,761] [pool-1-thread-4 | org.springframework.data.redis.listener.RedisMessageListenerContainer:handleSubscriptionException:651]发生连接失败。 5000毫秒后重新启动订阅任务
仅当我从config-service获取属性文件时,才会发生此错误。
github仓库中的application-test.properties也具有正确的redis配置。
请帮助我解决此问题。
答案 0 :(得分:1)
最后,经过大量调试,我发现出了什么问题。是由于spring.redis.host=localhost
末尾的多余空间导致了此问题。