我希望在应用程序启动时始终存在一些空闲的数据库连接。
我只能在 Golang 中看到MaxIdleConns和。MaxOpenConns我没有看到任何setMinIdle功能。帮助表示赞赏。
要针对问题的主要部分,您可以迭代确定的次数并向数据库发出并行请求,然后再将您的应用程序标记为已启动。(例如对于 k8s 就绪探测)。
一般来说,在为连接池配置选择配置时,需要考虑的事项很少:
SetMaxOpenConns.SetMaxIdleConns,记住,它的默认值为2。生产级设置的常见做法是将数据库连接池设置为有一个限制MaxOpenConns,这取决于每秒的预期请求数、工作人员的数量和数据库的配置。至于MaxIdleConns- 它应该设置为 MaxOpenConns 的一小部分,请考虑将您的期望设置为同时请求的分散程度。像 MaxOpenConns 的 25% 或 50%。