Go 中的Web应用程序。假设它是一个博客。假设每天有 1000 个会话。我应该创建一个全局数据库连接并让它一直处于活动状态吗?还是应该在每次需要查询数据库时打开和关闭它?一般规则是什么?
2 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
您应该为每个应用创建一个全局连接对象。此连接对象配置有连接池。根据给定的配置,每个连接对象都包含一定数量的连接。
如果您为每个请求创建和删除它,它将为每个请求创建和销毁连接池。
只需使用单例模式创建具有所需配置的全局连接对象,它将在内部为您管理连接池。
此外,处理您的应用程序的正常关闭。当您收到应用程序终止操作的信号时,请确保正确关闭全局连接对象。像这样:-
shutdown := make(chan os.Signal, 1) signal.Notify(shutdown, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL) <-shutdown connection.Close()
慕神8447489
TA贡献1780条经验 获得超1个赞
您应该使用 sql 连接池来管理您的连接。Golang database/sql 包提供了一种管理连接池的机制。在 database/sql 包中配置你的 maxIdle 参数,这样你就可以管理你的空闲连接池,以便在新的连接请求到来时重用。当连接池中没有空闲连接时,连接池会自动打开一个新连接。
- 2 回答
- 0 关注
- 176 浏览
添加回答
举报
0/150
提交
取消