首页 > 解决方案 > 读取数百万条 SQS 消息并持久化在 RDS 中

问题描述

我每天都会收到数百万条 SQS 消息。目前我们正在从各种轮询机器中读取相同的内容,并在 RDBMS(Aurora PostgreSQL)中写入相同内容。架构有两个缺陷:

  1. 处理所有 SQS 消息需要 10 多个小时。我们的目标是 2-3 小时。
  2. SQS 消息来自工作。这不是持续的活动。24 小时维护轮询机让我们付出了代价。

我们已经将 SQS NumberOfPollers配置为 20,MessageFetchSize配置为 10。

我的问题是:

  1. 除了 NumberOfPollers 和 MessageFetchSize,还有其他 SQS 配置参数我们可以用来加速这个过程吗?
  2. 如何计算 NumberOfPollers 和 MessageFetchSize 的正确值?我们只是在这方面进行尝试和错误。
  3. 我们是否可以利用 EMR-Spark 按需分配机器并运行 poller 并在执行后终止它,这样我们就不需要 24x7 维护机器了?
  4. 任何其他建议/实现相同的方法

标签: amazon-web-servicesamazon-ec2amazon-sqsamazon-emramazon-aurora

解决方案


推荐阅读