Spring mysql连接长时间断掉的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring mysql连接长时间断掉的问题相关的知识,希望对你有一定的参考价值。
参考技术A维护一个toB智能制造项目的时候,发现mysql偶尔会报错:
这个错误发生时,重新调用接口即可重新连接上,倒是没有特别大的阻碍,但是偶尔跳出还是烦人。所以我花了点时间研究了下。
这个问题很明显,就是mysql连接断了。
网上查到的解决方案无非以下几种:
试过了,但是后来发现,这个参数仅针对mysql4.x有效果,现如今的mysql稳定版大多是5.7,还有很多同行直接使用mysql8.x,所以这个方法没有效果。
这个都不用试,标准的spring项目谁会没事只开一个连接😂,所以也没啥用。
这个默认就是换了的,因为外网ip不稳定,自己内部链接还少些资源。但是并不能从根本性上解决这个问题。
这是我现在使用的方法。等我测试几天,再回来在评论区告诉大家答案。原理很简单,spring的连接池默认走的是dbcp,据说这个玩意内部有硬伤,长期空闲连接mysql是会有问题的,所以换成阿里的druid试一试。
还有一点需要各位明白的是,连接池配置是全局有效的,除非你引用的第三方包自己写死了,但是一般正常的第三方包或者开源包这些配置都是跟着主系统的,或者说主系统的配置是能够覆盖的。我这个系统使用了activiti,作为工作流引擎,引入其他的连接池也没啥问题,照常使用。
综上,等结果吧~
在此感谢这篇博客:
https://blog.csdn.net/qq_27471405/article/details/80921846
它总结的很全了。
保持ssh连接长时间不断开的技巧
NAT防火墙喜欢对空闲的会话进行超时处理,以确保它们状态表的干净和内存的低占用率
,因为 长时间保持连接, 会长期占用部分系统资源, 为了节省系统资源,NAT防火墙就会把长时间的ssh连接断掉;频繁重连ssh总归是有些麻烦,下边是我对部分ssh工具解决方法:
2.Xshell 我的是汉化版 英文的也一样
文件 -》属性
3.使用命令参数进行ssh连接时加一个参数 -o ServerAliveInterval=30 来保持活动状态
ssh -o ServerAliveInterval=30 用户名@IP
以上是关于Spring mysql连接长时间断掉的问题的主要内容,如果未能解决你的问题,请参考以下文章