Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot spring boot Redis配置-发生连接故障。5000毫秒后重新启动订阅任务_Spring Boot_Spring Mvc_Redis_Spring Data - Fatal编程技术网

Spring boot spring boot Redis配置-发生连接故障。5000毫秒后重新启动订阅任务

Spring boot spring boot Redis配置-发生连接故障。5000毫秒后重新启动订阅任务,spring-boot,spring-mvc,redis,spring-data,Spring Boot,Spring Mvc,Redis,Spring Data,我有一个如下的spring boot redis配置 @Configuration public class RedisConnectionConfiguration { @Bean public RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>()

我有一个如下的spring boot redis配置

@Configuration
public class RedisConnectionConfiguration {
@Bean
public RedisTemplate<String, Object> redisTemplate() {
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
    redisTemplate.setConnectionFactory(jedisConnectionFactory());
    return redisTemplate;
}

@Bean
RedisConnectionFactory jedisConnectionFactory() {
    JedisConnectionFactory jedisConnectionFactory = null;
        jedisConnectionFactory = new JedisConnectionFactory();
        jedisConnectionFactory.setHostName(host);
        jedisConnectionFactory.setPort(port);
        jedisConnectionFactory.setTimeout(0);
        jedisConnectionFactory.setPassword(password);
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();


        jedisPoolConfig.setMaxTotal(20);
        jedisPoolConfig.setMaxIdle(9000);
        jedisPoolConfig.setMinIdle(16);
        jedisPoolConfig.setTestOnBorrow(true);
        jedisPoolConfig.setTestOnReturn(true);
        jedisPoolConfig.setTestWhileIdle(true);
        jedisPoolConfig.setMinEvictableIdleTimeMillis(60000);
        jedisPoolConfig.setTimeBetweenEvictionRunsMillis(60000);
        jedisPoolConfig.setNumTestsPerEvictionRun(3);
        jedisPoolConfig.setBlockWhenExhausted(true);
        jedisConnectionFactory.setPoolConfig(jedisPoolConfig);

    return jedisConnectionFactory;
}

@Bean
MessageListenerAdapter messageListener() {
    return new MessageListenerAdapter(eventListenerService);
}

@Bean
ChannelTopic topic() {
    return new ChannelTopic(com.mds.core.common.Constants.REDIS_TOPIC_NAME);
}

@Bean
RedisMessageListenerContainer redisContainer() {
    final RedisMessageListenerContainer container = new RedisMessageListenerContainer();
    container.setConnectionFactory(jedisConnectionFactory());
    container.addMessageListener(messageListener(), receiverTopic());
    container.setTaskExecutor(Executors.newFixedThreadPool(4));
    return container;
}


@Bean
ChannelTopic receiverTopic() {
    return new ChannelTopic(com.mds.core.common.Constants.REDIS_FRONT_BACK_TOPIC_NAME);
}
当我启动spring启动应用程序时,它可以正常启动,但过了一会儿,我开始出现以下错误。以下错误不会停止

[pool-2-thread-1]错误requestId=o.s.d.r.l.RedisMessageListenerContainer 647-发生连接故障。5000毫秒后重新启动订阅任务

我只是使用redis zip文件附带的默认redis配置文件。我只更改了密码

但是,即使我收到了错误消息,SpringWeb应用程序仍然可以正常工作。会话已经创建,在本地机器上使用web应用程序没有问题。我甚至用集群redis(3个实例)和haproxy(redis端口:6376)测试了它。基本上,SpringWeb应用程序在集群redis上运行良好

但我不认为我可以在不了解错误消息的情况下将其部署到生产环境中

有人知道我为什么会得到这个吗


谢谢

你有没有想过?我的配置与您非常相似。应用程序在本地运行良好。当我将它部署到测试环境时,它也可以工作,但最终我开始在日志中看到相同的错误。很抱歉,我不记得我到底做了什么,但我模糊地记得我在redis配置中使用了值。
spring:
  profiles: local, default
  mvc:
  view:
    prefix: /
    suffix: .jsp

  redis:
    host: 127.0.0.1
    password: welcome
    port: 6376