如何使用数据库连接正确组织工作?

问题描述

我有一个 Rails 应用程序,我已经开发了很长时间。一直以来,我都在本地和 DEV 服务器上对其进行了测试。在 DEV 服务器上,在部署的应用程序旁边,还有一个 PG 数据库。并且连接没有问题。我认为根本就没有连接限制,或者它太高了 - 不是那么重要。

今天我开始部署到 PROD 服务器。它的功能类似于 DEV,但 BD 已经在 DO 数据库中。顺便说一下,服务器本身也位于 DigitalOcean。

问题是 DO 数据库有 20 个连接的限制。据我所知,超过这个限制 - Rails 应用程序会报错:

ActiveRecord::ConnectionNotEstablished(致命:剩余的连接槽为非复制超级用户连接保留)

最明显的选择是减少页面加载的请求数量。但这仍然没有解决问题,例如,如果用户数量增加

你能告诉我怎么看吗?除了更新 DO 数据库电源之外,还有其他解决方案吗?

解决方法

您可能想尝试 PG Bouncer(虽然从未尝试过,所以我无法确定它会如何影响应用)。