Unable to init enough connections amount! Only 21 of 24 were initialized... 的解决办法

Unable to init enough connections amount! Only 21 of 24 were initialized… 的解决办法

很讨厌,今天碰到了引入Redisson后 ,启动模块竟然碰到了**Unable to init enough connections amount! Only 21 of 24 were initialized…**这种问题。
可是同一个项目的另一个模块却不报错。研究了半天,发现竟然是…

问题的起源

b模块的pom中引入了项目公共的common这个pom,并排除了common模块中的2个包:

<dependency>
            <groupId>com.abcdxxx.mall</groupId>
            <artifactId>common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>com.baomidou</groupId>
                    <artifactId>mybatis-plus-boot-starter</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
                </exclusion>
            </exclusions>
   </dependency>

然后引入了redisson:

    <dependency>
        <groupId>org.redisson</groupId>
        <artifactId>redisson</artifactId>
    </dependency>

配好了配置文件:

@Configuration
public class MyRedissonConf {
 
   @Bean(destroyMethod = "shutdown")
   public RedissonClient myRedisson() { 
        Config config=new Config();
        config.useSingleServer().setAddress("redis://192.168.100.188:6379");
        
       RedissonClient redissonClient=Redisson.create(config);
       return redissonClient;
   }
}

程序中引入并实例化后。
启动项目,竟然报错:
Unable to init enough connections amount! Only 21 of 24 were initialized…
但是另一个模块启动redission后正常运行,很是诧异。

解决办法:
网上各种查找解决办法,说是添加下面这行能解决 :config.useSingleServer().setConnectionMinimumIdleSize(10);

@Configuration
public class MyRedissonConf {
 
   @Bean(destroyMethod = "shutdown")
   public RedissonClient myRedisson() { 
        Config config=new Config();
        config.useSingleServer().setAddress("redis://192.168.100.188:6379");
        ==***config.useSingleServer().setConnectionMinimumIdleSize(10);***==
       RedissonClient redissonClient=Redisson.create(config);
       return redissonClient;
   }
}

发现这个方法倒是可以解决不能连接的问题,但是又出了一个问题:
相同的2个DB
redis里出现了2个一模一样的DB, 让我感到这个解决办法不是很满意。

最后发现,在引入公共pom中不排除mybits数据源:

    <dependency>
        <groupId>com.abcdxxx.mall</groupId>
        <artifactId>common</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <exclusions>
            <exclusion>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

然后,在启动类上排除数据源 (exclude = DataSourceAutoConfiguration.class)

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class AbcdxxxApplication {
    public static void main(String[] args) {
        SpringApplication.run(SeckillApplication.class, args);
    }
}

然后,重新启动项目,就一切OK了。

我这个解决办法,希望能帮助到大家。

最后:
为什么会产生这个Unable to init enough connections amount! Only 21 of 24 were initialized…,
可能的原因是程序产生了循环引用,可以参考这篇文章: https://blog.csdn.net/qq_41731316/article/details/119803796

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值