springboot程序总是有超时连接的情况
事情是这样的,部署在阿里云,使用人数并不多,有人能正常访问使用,有人会超时,
1:数据量不大的情况下,总结应该是默认的数据库连接池未做修改,一旦
此类问题看我们常用的连接池常主要有c3p0,dbcp,tomcat-jdbc-pool,druid,HiKariCP。
可以查下对应的如何配置数据库连接池大小
这里说下druid
配置 | 缺省值 | 说明 |
name | 配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。 如果没有配置,将会生成一个名字,格式是:"DataSource-" + System.identityHashCode(this) |
|
jdbcUrl | 连接数据库的url,不同数据库不一样。例如: mysql : jdbc:mysql://localhost:3306/druid oracle : jdbc:oracle:thin:@localhost:1521:mydb |
|
username | 连接数据库的用户名 | |
password | 连接数据库的密码。如果你不希望密码直接写在配置文件中,可以使用ConfigFilter。详细看这里:https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter | |
driverClassName | 根据url自动识别 | 这一项可配可不配,如果不配置druid会根据url自动识别dbType,然后选择相应的driverClassName(建议配置下) |
initialSize | 0 | 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时 |
maxActive | 8 | 最大连接池数量 |
maxIdle | 8 | 已经不再使用,配置了也没效果 |
minIdle | 最小连接池数量 | |
maxWait | 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。 |
需要修改最大连接池数量加大,默认是8,有几个人同时用就会存在连接池的连接不够的情况
2:用户量比较多的情况,单应用程序
此类并发问题存在,数据库也需要进行优化,可以通过druid监控找到慢sql,对慢sql进行优化来减少每一次访问的时间,减少超时
技术人员私活平台,无手续费,欢迎加入