首页 > 解决方案 > spring boot dynamodb 吞吐量配置

问题描述

我们在生产中的应用程序经常中断,因为它无法承受负载。现在,api 是登录 api,这是非常关键的一个。在登录 api 中,我们有 3 个休息调用和 8 个 dynamodb 调用(6 个读取调用和 2 个写入调用 - 项目大小始终小于 1 kb,我们正在寻找最终的一致性)。微服务在嵌入式 tomcat(7) 上运行,我们使用的是 spring boot。正如我从 tomcat 文档中看到的那样,它默认有 200 个线程,而我的 1 个请求大约需要 800 毫秒才能完成。那么,您能帮我对 dynamodb RCU 和 WCU 进行什么配置吗?是否值得将 DAX 用于读取调用,以及将它与现有应用程序集成有多简单。我们有 2 个实例在微服务的生产环境中运行,出于某种原因,如果我们能找出什么配置应该是合适的,那么我们可以增加实例,我们应该为 RCU 和 WCU 增加多少?请指导。

标签: spring-bootamazon-dynamodbtomcat7dynamodb-queriesamazon-dynamodb-dax

解决方案


如果继续使用 DynamoDB 的预置计费模式对您很重要,那么您应该按照 2 个标准对其进行配置:

1) 您的“基本”RCU/WCU 应该是您的平均每月使用量,您可以在 AWS 提供的控制面板中轻松看到这一点,检查 Consumed RCU/RCU

2)您还可以配置自动缩放,这应该基于您的峰值使用情况和您的公司愿意每月在 DynamoDB 上花费的最大值,这也很容易从仪表板中提取

但是,如果您可以使用@madhead 提到的按需计费模式,它会自动为您处理峰值,因为您实际上并没有配置任何东西。

请注意!按需模式为每个请求收费,如果您的使用量不均匀且尖峰,它非常便宜,但如果您有恒定且可预测的访问,它肯定会比预置模式更昂贵。


推荐阅读