Mysql:“Too Many Connections”

这几天用Mybatis框架遇到一个很“奇怪”的事情。情况是这样的:

    线程池核心线程数:3 最大线程数15
    Mybatis常连接数:3 最大连接数15

正常来讲,对于mysql数据库,我写的程序最大的连接数量是15个。

但是!重点来了,程序部署到服务器上去并制作脚本启停。启动之后的一段时间内是无异常的,过了。。。嗯,挺长的一段时间

过后,就会报一堆连接错误:“too many connections”。

一开始我的理解是:连接数过多?我的程序连接数就15个,估计是别的程序占用了,于是我就想到是不是把mysql允许的最大连接数调高一点就ok了,于是我就这么干了,由原来的默认的100个提高到200个。重启程序jar包,又是很长一段时间稳定,我以为就ok了。然而!!!然而!!!还是没什么卵用。。。“too many connections”它又来了。气的我牙痒痒,怎么办,面对现实吧,就是我写的代码出了问题。然后开始检查逻辑,经过梳理之后果真发现了非常非常智障的问题!因为我的生产者线程启动之后,每当生产数据就唤醒线程池中的一条消费者线程去消费数据。唤醒消费者线程的过程中,每次都新建SqlSessionFactory。。。。。而每个

SqlSessionFactory的最大连接数都是15。。。哇,真的很智障有没有!然后修改代码,将创建SqlSessionFactory的那段代码写成一个单例,千万不能每次都新建,不然再大的允许连接数都没卵用。

这次非常智障的问题让我意识到,与其改变项目运行环境,不如找找自己项目代码的错误以及不合理之处。有时候代码和运行环境之间的关系就像人和社会的关系一样。一个人能力太有限了,改变不了社会环境,那就要试着去适应这个社会。就像代码,运行环境是固定的,代码是活的,改变运行环境无作用的前提下,那就应该让代码去适应运行环境。不是吗???

此致、敬礼:

Demons丶丶

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值