0

我希望在应用程序启动时始终存在一些空闲的数据库连接。

我只能在 Golang 中看到MaxIdleConns和。MaxOpenConns我没有看到任何setMinIdle功能。帮助表示赞赏。

4

1 回答 1

0

要针对问题的主要部分,您可以迭代确定的次数并向数据库发出并行请求,然后再将您的应用程序标记为已启动。(例如对于 k8s 就绪探测)。

一般来说,在为连接池配置选择配置时,需要考虑的事项很少:

  1. 默认情况下,不存在打开连接的限制,因此如果出现一些错误或传入请求的意外大量涌入,它可能会对 DB 产生影响。这就是为什么要设置SetMaxOpenConns.
  2. 如果连接将永远存在,那也不是最好的情况。因为它们占用内存和数据库资源。所以-设置SetMaxIdleConns,记住,它的默认值为2

生产级设置的常见做法是将数据库连接池设置为有一个限制MaxOpenConns,这取决于每秒的预期请求数、工作人员的数量和数据库的配置。至于MaxIdleConns- 它应该设置为 MaxOpenConns 的一小部分,请考虑将您的期望设置为同时请求的分散程度。像 MaxOpenConns 的 25% 或 50%。

于 2021-09-18T13:40:27.913 回答