如何正确组织数据库连接工作?
How to properly organize work with database connections?
我有一个 Rails 应用程序,我已经开发了一段时间。一直以来,我都在本地和 DEV 服务器上对其进行了测试。在 DEV 服务器上,在部署的应用程序旁边,还有一个 PG 数据库。连接没有问题。我认为根本没有连接限制,或者它太高了 - 不是那么重要。
今天我开始部署到 PROD 服务器。它与 DEV 的功能相似,但 BD 已经在 DO 数据库中。顺便说一下,服务器本身也位于 DigitalOcean 中。
问题是 DO 数据库有 20 个连接的限制。据我了解,超过此限制 - Rails 应用程序会出现错误:
ActiveRecord::ConnectionNotEstablished (FATAL: remaining connection slots are reserved for non-replication superuser connections)
最明显的选择是减少页面加载请求的数量。但这仍然没有解决问题,例如,如果用户数量增加。
你能告诉我往哪个方向看吗?除了更新 DO Database power 之外,是否有解决问题的方法?
您可能想尝试 PG Bouncer(虽然从未尝试过,所以我无法真正判断它将如何影响应用程序)。
我有一个 Rails 应用程序,我已经开发了一段时间。一直以来,我都在本地和 DEV 服务器上对其进行了测试。在 DEV 服务器上,在部署的应用程序旁边,还有一个 PG 数据库。连接没有问题。我认为根本没有连接限制,或者它太高了 - 不是那么重要。
今天我开始部署到 PROD 服务器。它与 DEV 的功能相似,但 BD 已经在 DO 数据库中。顺便说一下,服务器本身也位于 DigitalOcean 中。
问题是 DO 数据库有 20 个连接的限制。据我了解,超过此限制 - Rails 应用程序会出现错误:
ActiveRecord::ConnectionNotEstablished (FATAL: remaining connection slots are reserved for non-replication superuser connections)
最明显的选择是减少页面加载请求的数量。但这仍然没有解决问题,例如,如果用户数量增加。
你能告诉我往哪个方向看吗?除了更新 DO Database power 之外,是否有解决问题的方法?
您可能想尝试 PG Bouncer(虽然从未尝试过,所以我无法真正判断它将如何影响应用程序)。