Scala/DynamoDB-GetItems运行非常缓慢
我有一个从DynamoDB检索项目的函数(应用程序和dynamo在同一个区域上运行),但我的吞吐量非常慢:接近200/秒——至少应该是800/秒 如果删除调用DynamoDB的函数,吞吐量将增加到1380/秒 下面是访问DynamoDB的一段代码:Scala/DynamoDB-GetItems运行非常缓慢,scala,amazon-dynamodb,aws-sdk,Scala,Amazon Dynamodb,Aws Sdk,我有一个从DynamoDB检索项目的函数(应用程序和dynamo在同一个区域上运行),但我的吞吐量非常慢:接近200/秒——至少应该是800/秒 如果删除调用DynamoDB的函数,吞吐量将增加到1380/秒 下面是访问DynamoDB的一段代码: def findByKey(blacklistId: String): Option[Blacklist] = { val table = dynamoDB.getTable(TABLE_NAME) val spec = new GetIt
def findByKey(blacklistId: String): Option[Blacklist] = {
val table = dynamoDB.getTable(TABLE_NAME)
val spec = new GetItemSpec().withPrimaryKey("id", blacklistId).withConsistentRead(true)
Try(table.getItem(spec)) match {
case Success(item) if item != null =>
val result: Blacklist = item.toJSON
Some(result)
case Success(item) if item == null =>
None
case Failure(e) =>
Logger.error(e.getMessage, e)
None
}
}
有人知道如何提高这些请求的性能吗 首先,您使用的是一致读取。第二,请检查整个配置,即表的读取容量单位。。。此外,您可能需要检查分区键是否正确设计为将记录分发到不同的分区…使用一致的测试读取和表上的容量单位为1500并没有什么区别-所以问题不在于始终一致的读取或配置。您是并行地发出请求吗?调用代码是什么样子的?