AWS RDS 中的并发性(来自多个 Rails 应用程序)

Concurrency in AWS RDS (from multiple Rails applications)

目前我在不同的服务器上有 运行 两个 Rails 应用程序。一个应用程序是后端抓取器,它正在获取数据并将其保存到共享数据库 (AWS RDS)。第二个应用程序是前端,它从共享数据库中获取数据并将结果显示给用户。

我的问题是:

我想通过 运行 在多个 EC2 实例上扩展我的后端应用程序以加快抓取速度。

当然你可以从多个服务器写入你的数据库。如果您从多个线程更新相同的记录,那么您可能必须使用数据库事务,但听起来您并没有这样做。

一般来说,数据库服务器上的 CPU 个核心数和服务器的磁盘速度会影响数据库可以处理的并发插入数。首先,您肯定希望使用 SSD 支持的数据库实例。接下来,您要慢慢增加写入数据库的服务器数量,同时监控 RDS 服务器上的 CPU、内存和 IOPS。您可以直接从 RDS 控制台或 CloudWatch 控制台监控这些指标。

如果 CPU 或内存开始成为瓶颈,您将需要增加服务器的大小(或扩展到多个数据库服务器)。如果磁盘 IO 成为瓶颈,您可以增加配置的 SSD 卷的大小以获得更高的基线 IOPS(获得更多可用的额外好处 space),或者直接配置 IOPS(可能很昂贵)。