介绍Gorm线程池,避免出现因超出最大连接数导致连接断开
gorm连接mysql代码如下:
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
但如果直接使用db去操作mysql数据库,如果连接数量超过mysql最大限制,会导致连接断开。
因此需要对gorm的数据库连接进行线程池管理,代码如下:
sqlDb, _ := db.DB()
// 设置空闲连接池中链接的最大数量
sqlDb.SetMaxIdleConns(100)
// 设置打开数据库链接的最大数量
sqlDb.SetMaxOpenConns(1000)
// 设置连接池里面的连接最大存活时长
sqlDb.SetConnMaxLifetime(60 * time.Second)
// 设置连接池里面的连接最大空闲时长
sqlDb.SetConnMaxIdleTime(10 * time.Second)
接下来使用db进行数据库操作即可。